
/* ════════════════════════════════════════
   TOKENS COMMUNS
════════════════════════════════════════ */
:root{
  --red:#e2001a;--red-dark:#a50013;--red-darker:#7a000e;--red-light:#fde8eb;--red-mid:#f06070;
  --cream:#faf8f5;--warm-gray:#f2ede8;--border:#e8e0d8;
  --gray-100:#f7f6f6;--gray-200:#ece9e9;--gray-300:#c8c2c2;--gray-400:#a39b9b;--gray-500:#7a7272;--gray-800:#2a2424;
  --white:#ffffff;--navy:#1a2340;--navy-dark:#11172e;--navy-light:#2b3760;
  --shadow-sm:0 1px 6px rgba(162,0,20,.07);--shadow-md:0 4px 20px rgba(162,0,20,.10);
  --radius:12px;--radius-sm:8px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-family:'Source Sans 3',sans-serif;background:var(--cream);color:var(--gray-800);min-height:100vh;overflow-x:clip;font-size:14px}

/* ── PAGE ROUTING ── */
.page{display:none;min-height:100vh}
.page.active{display:block}

/* ── HEADER commun ── */
.header{position:sticky;top:0;z-index:200;height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 2rem;box-shadow:0 2px 16px rgba(0,0,0,.18)}
.header-home{background:rgba(250,248,245,.96);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}
.header-sim{background:var(--red-dark)}
.brand{display:flex;align-items:center;gap:12px;cursor:pointer}
.brand-monogram{width:38px;height:38px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-family:'Playfair Display',serif;font-size:15px;font-weight:700;flex-shrink:0}
.header-home .brand-monogram{background:var(--red);color:white}
.header-sim .brand-monogram{background:white;color:var(--red)}
.brand-name{font-family:'Playfair Display',serif;font-size:17px;font-weight:600;letter-spacing:-.01em}
.header-home .brand-name{color:var(--gray-800)}
.header-sim .brand-name{color:white}
.brand-sub{font-size:10px;font-weight:300;letter-spacing:.06em;text-transform:uppercase;margin-top:1px}
.header-home .brand-sub{color:var(--gray-500)}
.header-sim .brand-sub{color:rgba(255,255,255,.6)}
.header-sim .nav-btn{color:white}
.header-home #sim-retrieval-btn{color:var(--gray-800)}
#sim-code-input::placeholder{color:var(--gray-300);letter-spacing:.16em;font-weight:600;opacity:1}
#sim-code-input:focus::placeholder{color:var(--gray-200)}
.header-home #sim-retrieval-btn svg{stroke:var(--gray-800)}
.header-home #sim-retrieval-btn:hover{border-color:var(--red)!important;color:var(--red)!important}
.header-home #sim-retrieval-btn:hover svg{stroke:var(--red)!important}
.header-sim #sim-retrieval-btn{color:white!important;border-color:rgba(255,255,255,.4)!important}
.header-sim #sim-retrieval-btn svg{stroke:white!important}
.header-sim #sim-retrieval-btn:hover{color:white!important;border-color:white!important;background:rgba(255,255,255,.15)!important}
.header-sim .nav-btn:hover,.header-sim .nav-item:hover .nav-btn{background:rgba(255,255,255,.15);color:white}
.header-sim .nav-link{color:white}
.header-sim .nav-link:hover{background:rgba(255,255,255,.15);color:white}
.header-sim .hdr-divider{background:rgba(255,255,255,.25)}
aa.btn-back{text-decoration:none}
.btn-back{text-decoration:none}
.btn-back{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.24);border-radius:20px;padding:6px 14px;font-size:12px;font-weight:600;color:rgba(255,255,255,.92);cursor:pointer;font-family:inherit;white-space:nowrap;flex-shrink:0;transition:background .15s}
.btn-back:hover{background:rgba(255,255,255,.23)}
.btn-back svg{width:14px;height:14px;fill:rgba(255,255,255,.92);flex-shrink:0}
.hdr-divider{width:1px;height:26px;background:rgba(255,255,255,.2);flex-shrink:0}
.hdr-badge{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);border-radius:20px;padding:4px 14px;font-size:12px;color:rgba(255,255,255,.9);font-weight:500;flex-shrink:0}

/* ══════════════════════════════════════
   PAGE ACCUEIL
══════════════════════════════════════ */
.hero{background:radial-gradient(125% 130% at 80% 6%, var(--red) 0%, var(--red-dark) 46%, var(--red-darker) 100%);padding:5rem 2rem 4rem;position:relative;overflow:hidden}
.hero::before{content:'';position:absolute;right:-60px;top:-60px;width:340px;height:340px;border-radius:50%;background:rgba(255,255,255,.06);pointer-events:none}
.hero::after{content:'';position:absolute;right:80px;bottom:-100px;width:220px;height:220px;border-radius:50%;background:rgba(255,255,255,.04);pointer-events:none}
.hero-inner{max-width:820px;margin:0 auto;position:relative;z-index:1}
.hero-eyebrow{display:inline-flex;align-items:center;gap:8px;background:var(--red-light);border:1px solid rgba(226,0,26,.2);border-radius:20px;padding:5px 14px;font-size:11px;font-weight:600;color:var(--red-dark);letter-spacing:.07em;text-transform:uppercase;margin-bottom:22px}
.hero-eyebrow-dot{width:6px;height:6px;border-radius:50%;background:var(--red)}
.hero-title{font-family:'Playfair Display',serif;font-size:clamp(2rem,5vw,3.2rem);font-weight:700;line-height:1.15;color:var(--white);margin-bottom:18px}
.hero-title em{font-style:italic;color:var(--red-mid)}
.hero-desc{font-size:16px;font-weight:300;color:rgba(255,255,255,.75);line-height:1.7;max-width:560px;margin-bottom:34px}
.hero-stats{display:flex;gap:28px}
.stat{display:flex;flex-direction:column;gap:2px}
.stat-num{font-family:'Playfair Display',serif;font-size:1.9rem;font-weight:700;color:var(--red-mid);line-height:1}
.stat-label{font-size:11px;color:rgba(255,255,255,.65)}
.stat-divider{width:1px;background:rgba(255,255,255,.2)}
.section{padding:3.5rem 2rem}
.section-inner{max-width:1200px;margin:0 auto}
.section-header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:1.75rem;padding-bottom:1.1rem;border-bottom:1px solid var(--border)}
.section-tag{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--red);margin-bottom:5px}
.section-title{font-family:'Playfair Display',serif;font-size:1.5rem;font-weight:600;color:var(--gray-800)}
.section-count{font-size:13px;color:var(--gray-500)}
.sim-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.9rem;align-items:stretch;grid-auto-rows:1fr}
#sim-cats{position:relative;display:flex;gap:28px;margin-bottom:20px;border-bottom:1px solid var(--gray-200);flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}
#sim-cats::-webkit-scrollbar{display:none}
.sim-cat-tab{position:relative;padding:0 1px 13px;border:none;background:none;font-family:inherit;font-size:14.5px;font-weight:600;color:var(--gray-400);cursor:pointer;transition:color .25s ease;white-space:nowrap;letter-spacing:.005em}
.sim-cat-tab:hover{color:var(--gray-700)}
.sim-cat-tab.active{color:var(--red)}
#sim-cat-ind{position:absolute;left:0;bottom:0;height:2.5px;width:0;background:var(--red);border-radius:3px;transform:translateX(0);transition:transform .35s cubic-bezier(.22,.61,.36,1),width .35s cubic-bezier(.22,.61,.36,1);pointer-events:none}
@keyframes simSlideR{from{opacity:0;transform:translateX(28px)}to{opacity:1;transform:translateX(0)}}
@keyframes simSlideL{from{opacity:0;transform:translateX(-28px)}to{opacity:1;transform:translateX(0)}}
@keyframes simDealR{0%{opacity:0;transform:perspective(1000px) translateX(30px) translateY(12px) rotateY(-11deg) scale(.95)}60%{opacity:1}100%{opacity:1;transform:perspective(1000px) translateX(0) translateY(0) rotateY(0) scale(1)}}
@keyframes simDealL{0%{opacity:0;transform:perspective(1000px) translateX(-30px) translateY(12px) rotateY(11deg) scale(.95)}60%{opacity:1}100%{opacity:1;transform:perspective(1000px) translateX(0) translateY(0) rotateY(0) scale(1)}}
@media (max-width:560px){#sim-cats{gap:20px}.sim-cat-tab{font-size:13px;padding-bottom:11px}}
.sim-nav-bar{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:22px}
.sim-nav-arrow{display:flex;align-items:center;justify-content:center;width:38px;height:38px;padding:0;border-radius:50%;border:1.5px solid var(--gray-200);background:#fff;color:var(--gray-500);cursor:pointer;transition:border-color .2s,color .2s,transform .2s,box-shadow .2s;box-shadow:0 1px 3px rgba(20,20,40,.05)}
.sim-nav-arrow:hover{border-color:var(--red);color:var(--red);transform:translateY(-2px);box-shadow:0 7px 18px rgba(226,0,26,.18)}
.sim-nav-arrow:active{transform:translateY(0);box-shadow:0 2px 6px rgba(226,0,26,.15)}
.sim-dots{display:flex;align-items:center;gap:9px}
.sim-dot{width:8px;height:8px;padding:0;border:none;border-radius:50%;background:var(--gray-200);cursor:pointer;transition:background .25s,width .35s cubic-bezier(.4,0,.2,1)}
.sim-dot:hover{background:var(--gray-400)}
.sim-dot.active{width:26px;border-radius:5px;background:var(--red)}
a.sim-card{text-decoration:none;color:inherit;display:flex;flex-direction:column}
.sim-card{background:var(--white);border:1px solid var(--border);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 1px 6px rgba(26,20,16,.07);transition:transform .2s,box-shadow .2s,border-color .2s;text-decoration:none;height:260px}
.sim-card-body{flex:1;padding:1.4rem;display:flex;flex-direction:column;overflow:hidden}
.sim-card-desc{font-size:12.5px;color:var(--gray-500);line-height:1.6;flex:1;min-height:4.8em;font-weight:300;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}
.sim-card.available{cursor:pointer}
.sim-card.available:hover{transform:translateY(-4px);box-shadow:0 10px 48px rgba(26,20,16,.15);border-color:rgba(226,0,26,.28)}
.sim-card.soon{opacity:.62;cursor:default}
.sim-card-stripe{height:4px;background:linear-gradient(90deg,var(--red-darker),var(--red))}
.sim-card.soon .sim-card-stripe{background:var(--gray-200)}
.sim-card-body{flex:1;padding:1.4rem;display:flex;flex-direction:column;overflow:hidden}
.sim-card-icon{width:46px;height:46px;border-radius:11px;background:var(--red-light);display:flex;align-items:center;justify-content:center;margin-bottom:14px;flex-shrink:0}
.sim-card.soon .sim-card-icon{background:var(--warm-gray)}
.sim-card-icon svg{width:22px;height:22px}
.sim-badge{display:none;padding:2px 9px;border-radius:10px;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-bottom:9px}
.badge-active{background:var(--red-light);color:var(--red-dark)}
.badge-soon{background:var(--warm-gray);color:var(--gray-500)}
.sim-card-name{hyphens:auto;word-break:break-word;font-family:'Playfair Display',serif;font-size:1.1rem;font-weight:600;color:var(--gray-800);margin-bottom:7px;line-height:1.3;min-height:2.6em;max-height:2.6em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.sim-card-footer{padding:.9rem 1.4rem;border-top:1px solid var(--warm-gray);display:flex;align-items:center;justify-content:space-between}
.sim-tags{display:flex;gap:5px;flex-wrap:wrap;max-height:20px;overflow:hidden;align-content:flex-start}
.tag{font-size:10px;font-weight:500;padding:2px 7px;border-radius:5px;background:var(--warm-gray);color:var(--gray-500)}
.sim-arrow{width:27px;height:27px;border-radius:50%;background:var(--red);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .18s}
.sim-card.available:hover .sim-arrow{transform:translateX(3px)}
.sim-arrow svg{width:13px;height:13px;fill:white}
.sim-card.soon .sim-arrow{background:var(--gray-200)}
.about-strip{margin:0 2rem 3.5rem;background:radial-gradient(125% 130% at 80% 6%, var(--red) 0%, var(--red-dark) 46%, var(--red-darker) 100%);border-radius:20px;padding:2.75rem 3rem;display:flex;align-items:center;justify-content:space-between;gap:2rem;position:relative;overflow:hidden}
.about-strip::before{content:'HS';position:absolute;right:2.5rem;top:50%;transform:translateY(-50%);font-family:'Playfair Display',serif;font-size:8rem;font-weight:700;color:rgba(255,255,255,.06);line-height:1;pointer-events:none}
.about-text h2{font-family:'Playfair Display',serif;font-size:1.4rem;font-weight:600;color:white;margin-bottom:7px}
.about-text p{font-size:13.5px;color:rgba(255,255,255,.72);font-weight:300;max-width:460px;line-height:1.65}
.about-cta{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.15);border:1.5px solid rgba(255,255,255,.28);border-radius:22px;padding:9px 20px;font-size:13px;font-weight:600;color:white;cursor:pointer;font-family:inherit;white-space:nowrap;transition:background .18s}
.about-cta:hover{background:rgba(255,255,255,.25)}
.site-footer{border-top:1px solid var(--border);padding:1.75rem 2rem;display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--gray-500)}
.footer-brand{display:flex;align-items:center;gap:8px;font-family:'Playfair Display',serif;font-size:14px;color:var(--gray-800)}
.footer-dot{width:7px;height:7px;border-radius:50%;background:var(--red)}

/* ══════════════════════════════════════
   SIMULATEURS — STYLES COMMUNS
══════════════════════════════════════ */
.sim-hero{background:radial-gradient(125% 130% at 80% 6%, var(--red) 0%, var(--red-dark) 46%, var(--red-darker) 100%);padding:1.75rem 2rem 2.75rem;position:relative;overflow:hidden}
.sim-hero::before{content:'';position:absolute;right:-60px;top:-60px;width:300px;height:300px;border-radius:50%;background:rgba(255,255,255,.06);pointer-events:none}
.sim-hero::after{content:'';position:absolute;right:70px;bottom:-90px;width:190px;height:190px;border-radius:50%;background:rgba(255,255,255,.04);pointer-events:none}
.sim-hero-inner{max-width:1100px;margin:0 auto;position:relative;z-index:1}
.sim-hero-label{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--red-mid);margin-bottom:6px}
.sim-hero-title{font-family:'Playfair Display',serif;font-size:1.75rem;font-weight:700;color:white;margin-bottom:5px}
.sim-hero-sub{font-size:13.5px;color:rgba(255,255,255,.7);font-weight:300;max-width:560px}
.sim-main{max-width:1100px;margin:0 auto;padding:1.75rem 1.5rem 3.5rem}

/* ── CARD ── */
.card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid var(--gray-200);overflow:hidden;margin-bottom:1.25rem}
.card:last-child{margin-bottom:0}
.card-header{background:var(--red-light);border-bottom:1px solid rgba(226,0,26,.14);padding:.7rem 1.2rem;display:flex;align-items:center;gap:8px}
.card-header-icon{width:27px;height:27px;background:var(--red);border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.card-header-icon svg{width:14px;height:14px;fill:white}
.card-title{font-size:12.5px;font-weight:600;color:var(--red-dark)}
.card-body{padding:1.2rem}

/* ── FIELDS ── */
.field{margin-bottom:9px}.field:last-child{margin-bottom:0}
.field-label,.field label{font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--gray-500);margin-bottom:7px;display:block}
.field input[type=text],.field input[type=number],.field select,
input[type=range]{width:100%}
.field input[type=text],.field input[type=number],.field select{font-size:13px;padding:7px 10px;border:1.5px solid var(--gray-200);border-radius:var(--radius-sm);background:var(--gray-100);color:var(--gray-800);outline:none;font-family:inherit;transition:border-color .15s}
.field input[type=text]:focus,.field input[type=number]:focus,.field select:focus{border-color:var(--red);background:white}
.field input[type=number]{-moz-appearance:textfield}
.field input[type=number]::-webkit-outer-spin-button,.field input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none}

/* ── SLIDERS ── */
input[type=range]{-webkit-appearance:none;height:4px;border-radius:2px;outline:none;cursor:pointer;background:linear-gradient(to right,var(--red) var(--pct,0%),var(--gray-200) var(--pct,0%))}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:17px;height:17px;border-radius:50%;background:var(--red);border:3px solid white;box-shadow:0 0 0 1.5px var(--red);cursor:pointer;transition:transform .14s}
input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.15)}
.slider-wrap{display:flex;align-items:center;gap:10px}
.slider-val{font-size:13.5px;font-weight:700;color:var(--red-dark);min-width:82px;text-align:right;white-space:nowrap}
.slider-minmax{display:flex;justify-content:space-between;font-size:9.5px;color:var(--gray-300);margin-top:2px}

/* ── NUM INPUT ── */
.num-input-wrap{display:flex;align-items:center;min-width:0}
#page-donation input,#page-donation select{box-sizing:border-box;max-width:100%}
#page-donation .num-input-wrap input[type=number]{min-width:0}
#page-donation .sim-main{overflow-x:hidden}
.num-input-wrap input[type=number]{flex:1;font-family:inherit;font-size:14.5px;font-weight:600;color:var(--red-dark);padding:8px 11px;border:1.5px solid var(--gray-200);border-right:none;border-radius:var(--radius-sm) 0 0 var(--radius-sm);background:var(--gray-100);outline:none;transition:border-color .14s;-moz-appearance:textfield}
.num-input-wrap input[type=number]::-webkit-outer-spin-button,.num-input-wrap input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none}
.num-input-wrap input[type=number]:focus{border-color:var(--red);background:white}
.num-input-unit{background:var(--red);color:white;font-weight:700;font-size:13.5px;padding:8px 13px;border-radius:0 var(--radius-sm) var(--radius-sm) 0}
.input-hint{font-size:10.5px;color:var(--gray-500);margin-top:4px}
.warn-box{display:none;align-items:center;gap:6px;background:#fff4e5;border:1px solid #f5a623;border-radius:var(--radius-sm);padding:6px 10px;font-size:11.5px;color:#8a5500;margin-top:6px;font-weight:500}

/* ── MODE TABS ── */
.mode-tabs,.strat-tabs{display:flex;gap:4px;margin-bottom:10px}
.mtab{padding:4px 11px;border:1.5px solid var(--gray-200);border-radius:20px;font-size:11.5px;font-weight:500;cursor:pointer;background:transparent;color:var(--gray-500);transition:all .14s;font-family:inherit}
.mtab:hover{border-color:var(--red);color:var(--red)}
.mtab.active{background:var(--red);border-color:var(--red);color:white}

/* ── TOGGLE ── */
.toggle-row{display:flex;align-items:center;gap:11px;cursor:pointer;margin-bottom:11px;user-select:none}
.toggle{width:40px;height:22px;border-radius:11px;background:var(--gray-200);position:relative;transition:background .2s;flex-shrink:0}
.toggle.on{background:var(--red)}
.toggle::after{content:'';position:absolute;width:16px;height:16px;border-radius:50%;background:white;top:3px;left:3px;box-shadow:0 1px 3px rgba(0,0,0,.18);transition:left .2s}
.toggle.on::after{left:21px}
.toggle-label{font-size:12.5px;font-weight:600;color:var(--gray-800)}
.report-section{overflow:hidden;transition:max-height .35s ease}
.report-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;align-items:center;margin-bottom:7px}
.report-grid label{font-size:11.5px;color:var(--gray-500);font-weight:500}
.report-grid input[type=number]{font-family:inherit;font-size:12.5px;font-weight:600;padding:6px 9px;border:1.5px solid var(--gray-200);border-radius:var(--radius-sm);background:var(--gray-100);color:var(--red-dark);outline:none;width:100%;-moz-appearance:textfield;transition:border-color .14s}
.report-grid input[type=number]:focus{border-color:var(--red);background:white}
.report-grid input[type=number]::-webkit-outer-spin-button,.report-grid input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none}
.report-total{background:var(--red-light);border:1px solid rgba(226,0,26,.18);border-radius:var(--radius-sm);padding:9px 13px;display:flex;justify-content:space-between;align-items:center;margin-top:9px}
.report-total-label{font-size:11.5px;color:var(--red-dark);font-weight:500}
.report-total-val{font-size:15px;font-weight:700;color:var(--red-dark)}

/* ── SEP ── */
.sep{display:flex;align-items:center;gap:8px;margin:9px 0;font-size:10.5px;color:var(--gray-300)}
.sep::before,.sep::after{content:'';flex:1;height:0.5px;background:var(--gray-200)}

/* ── DYNAMIC ROWS ── */
.dyn-row{display:grid;grid-template-columns:1fr 1fr auto;gap:5px;align-items:center;margin-bottom:5px}
.dyn-row input,.dyn-row select{font-size:12px;padding:5px 7px;border:1.5px solid var(--gray-200);border-radius:var(--radius-sm);background:var(--gray-100);color:var(--gray-800);outline:none;font-family:inherit;width:100%}
.dyn-row-2{display:grid;grid-template-columns:1fr auto;gap:5px;align-items:center;margin-bottom:5px}
.dyn-row-2 input{font-size:12px;padding:5px 7px;border:1.5px solid var(--gray-200);border-radius:var(--radius-sm);background:var(--gray-100);color:var(--gray-800);outline:none;font-family:inherit;width:100%}
.btn-rm{padding:4px 8px;border:1.5px solid var(--gray-200);border-radius:var(--radius-sm);background:transparent;color:var(--gray-500);font-size:12px;cursor:pointer;font-family:inherit;transition:all .14s}
.btn-rm:hover{background:var(--red-light);border-color:var(--red);color:var(--red-dark)}
.btn-add{display:flex;align-items:center;gap:5px;padding:5px 10px;border:1.5px dashed var(--gray-200);border-radius:var(--radius-sm);background:transparent;color:var(--gray-500);font-size:11.5px;cursor:pointer;font-family:inherit;margin-top:4px;transition:all .14s}
.btn-add:hover{border-color:var(--red);color:var(--red);background:var(--red-light)}

/* ── PLAFOND ── */
.plafond-line{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid var(--gray-100);font-size:12.5px}
.plafond-line:last-child{border-bottom:none}
.plafond-line .lbl{color:var(--gray-500)}
.plafond-line .val{font-weight:600;color:var(--gray-800)}
.plafond-total-line{display:flex;justify-content:space-between;align-items:center;padding:9px 0 0;margin-top:5px;border-top:2px solid var(--red-light)}
.plafond-total-line .lbl{font-weight:600;color:var(--gray-800);font-size:12.5px}
.plafond-total-line .val{font-size:18px;font-weight:700;color:var(--red)}
.cta-link{display:inline-flex;align-items:center;gap:5px;margin-top:11px;font-size:11.5px;font-weight:600;color:var(--red);cursor:pointer;border:none;background:none;padding:0;font-family:inherit}
.cta-link:hover{color:var(--red-dark)}

/* ── METRICS PER ── */
.metrics-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.metric-card{background:var(--gray-100);border-radius:var(--radius-sm);border:1px solid var(--gray-200);padding:13px 15px}
.metric-card.highlight{background:var(--red-light);border-color:rgba(226,0,26,.18)}
.metric-label{font-size:10.5px;font-weight:700;color:var(--gray-500);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}
.metric-card.highlight .metric-label{color:var(--red-dark)}
.metric-value{font-size:21px;font-weight:700;color:var(--gray-800)}
.metric-card.highlight .metric-value{color:var(--red);font-size:23px}
.tmi-bar-wrap{margin:13px 0 5px}
.tmi-bar-track{display:flex;height:9px;border-radius:5px;overflow:hidden;box-shadow:inset 0 1px 3px rgba(0,0,0,.07)}
.tmi-seg{height:100%}
.tmi-legend{display:flex;gap:9px;flex-wrap:wrap;margin-top:7px}
.tmi-legend-item{display:flex;align-items:center;gap:4px;font-size:10.5px;color:var(--gray-500)}
.tmi-legend-dot{width:9px;height:9px;border-radius:3px;flex-shrink:0}
.tmi-badges{display:flex;align-items:center;gap:7px;margin-top:11px;flex-wrap:wrap}
.tmi-badge{display:inline-flex;align-items:center;padding:3px 11px;border-radius:20px;font-size:12.5px;font-weight:700}
.tranche-table{width:100%;border-collapse:collapse;font-size:11.5px}
.tranche-table th{font-size:9.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--gray-500);padding:5px 7px;text-align:left;border-bottom:2px solid var(--gray-200);background:var(--gray-100)}
.tranche-table td{padding:6px 7px;border-bottom:1px solid var(--gray-100)}
.tranche-table tr.active td{background:var(--red-light);font-weight:600}
.tranche-table tr.active td:first-child{border-left:3px solid var(--red)}
.stab{flex:1;padding:7px 5px;font-size:11.5px;font-weight:600;border:none;background:white;color:var(--gray-500);cursor:pointer;border-right:1px solid var(--gray-200);transition:all .14s;font-family:inherit}
.stab:last-child{border-right:none}
.stab:hover{background:var(--red-light);color:var(--red-dark)}
.stab.active{background:var(--red);color:white}
.strat-tabs{border-radius:var(--radius-sm);overflow:hidden;border:1.5px solid var(--gray-200);gap:0}
.descente-card{border:2px solid var(--gray-200);border-radius:var(--radius-sm);padding:11px 13px;margin-bottom:7px;cursor:pointer;transition:all .14s;background:white}
.descente-card:hover{border-color:var(--red);box-shadow:var(--shadow-sm)}
.descente-card.selected{border-color:var(--red);background:var(--red-light)}
.descente-card.impossible{opacity:.4;cursor:not-allowed}
.descente-header-row{display:flex;justify-content:space-between;align-items:center}
.descente-pills{display:flex;align-items:center;gap:7px}
.tpill{display:inline-block;padding:2px 9px;border-radius:20px;font-size:11.5px;font-weight:700}
.descente-amount{font-size:14px;font-weight:700;color:var(--red)}
.descente-detail{font-size:11.5px;color:var(--gray-500);margin-top:4px}
.reco-box{background:linear-gradient(135deg,var(--red-light),rgba(255,255,255,.5));border:1.5px solid rgba(226,0,26,.18);border-radius:var(--radius-sm);padding:13px 15px;position:relative;overflow:hidden}
.reco-box::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--red)}
.reco-title{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--red-dark);margin-bottom:5px}
.reco-amount{font-size:26px;font-weight:700;color:var(--red);line-height:1.1;margin:5px 0}
.reco-detail{font-size:12.5px;color:var(--gray-500)}
.reco-badge{display:inline-block;margin-top:7px;background:var(--red);color:white;font-size:10.5px;font-weight:600;padding:3px 10px;border-radius:20px}
.sim-footer-note{text-align:center;font-size:10.5px;color:var(--gray-300);margin-top:1.75rem;padding-bottom:.5rem}

/* ── PER LAYOUT ── */
#page-pyramide .sim-grid-layout{display:grid!important;grid-template-columns:310px 1fr!important;gap:1.75rem;align-items:start;width:100%}
.sim-grid-layout{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;align-items:start}
.sim-col{display:flex;flex-direction:column;gap:1.4rem}

/* ── RECAP CARD (PER & Succession) ── */
.recap-card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid var(--gray-200);overflow:hidden;margin-bottom:1rem}
.recap-head{background:linear-gradient(135deg,var(--red-darker),var(--red));padding:.8rem 1.2rem;display:flex;align-items:center;gap:8px}
.recap-head span{font-size:12.5px;font-weight:600;color:white}
.recap-head svg{width:16px;height:16px;flex-shrink:0}
.recap-body{padding:1.2rem 1.4rem}
.recap-body p{font-size:13.5px;line-height:1.75;color:var(--gray-800)}

/* ══════════════════════════════════════
   SIMULATEUR SUCCESSION — STYLES SPÉC.
══════════════════════════════════════ */
.inputs-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1.25rem;margin-bottom:1.25rem}
.section-lbl{font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--gray-500);margin-bottom:8px}

/* Barème contextuel */
.bareme-ctx{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid var(--gray-200);overflow:hidden;margin-bottom:1.25rem}
.bareme-head{padding:.7rem 1.2rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--gray-200);background:var(--gray-100)}
.bareme-title{font-size:12.5px;font-weight:600;color:var(--red-dark);display:flex;align-items:center;gap:7px}
.bareme-body{padding:1.2rem}
.bareme-pills-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;align-items:center}
.abatt-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 13px;border-radius:20px;font-size:11.5px;font-weight:500;background:var(--red-light);color:var(--red-dark);border:1px solid rgba(226,0,26,.2)}
.exo-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 13px;border-radius:20px;font-size:11.5px;font-weight:500;background:#EAF3DE;color:#27500A;border:1px solid #C0DD97}
.tranches-bar{display:flex;height:52px;border-radius:var(--radius-sm);overflow:hidden;margin-bottom:8px;border:1px solid var(--gray-200)}
.tranche-seg-s{display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:13px;font-weight:700;padding:4px 3px;min-width:0;overflow:hidden}
.tmi-row{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:12px;color:var(--gray-500);flex-wrap:wrap}
.tmi-badge-s{padding:3px 11px;border-radius:20px;font-size:12px;font-weight:600}

/* KPI succession */
.kpi-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:1.25rem}
.kpi{border-radius:var(--radius);border:1px solid var(--gray-200);background:var(--white);padding:13px 15px}
.kpi.kred{border-color:rgba(226,0,26,.25);background:var(--red-light)}
.kpi.kgreen{border-color:#C0DD97;background:#EAF3DE}
.kpi.kblue{border-color:#B5D4F4;background:#E6F1FB}
.kpi-label{font-size:11px;color:var(--gray-500);margin-bottom:3px}
.kpi.kred .kpi-label{color:var(--red-dark)}.kpi.kgreen .kpi-label{color:#3B6D11}.kpi.kblue .kpi-label{color:#0C447C}
.kpi-val{font-size:19px;font-weight:700;color:var(--gray-800)}
.kpi.kred .kpi-val{color:#791F1F}.kpi.kgreen .kpi-val{color:#27500A}.kpi.kblue .kpi-val{color:#0C447C}
.kpi-sub{font-size:10.5px;color:var(--gray-300);margin-top:2px}
.kpi.kgreen .kpi-sub{color:#3B6D11;opacity:.8}

/* Barre patrimoine */
.pat-section{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid var(--gray-200);padding:1.1rem 1.2rem;margin-bottom:1.25rem}
.pat-bar-track{height:36px;border-radius:var(--radius-sm);overflow:hidden;display:flex;margin:8px 0;border:1px solid var(--gray-200)}
.pat-seg{display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:white;overflow:hidden;white-space:nowrap;min-width:0}
.pat-legend{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.pat-leg-i{display:flex;align-items:center;gap:5px;font-size:11.5px;color:var(--gray-500)}
.pat-leg-sq{width:11px;height:11px;border-radius:2px;flex-shrink:0}

/* 3 cols */
.flow-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem;margin-bottom:1.25rem}
.flow-col{border-radius:var(--radius);border:1px solid var(--gray-200);overflow:hidden;display:flex;flex-direction:column;background:var(--white);box-shadow:var(--shadow-sm)}
.flow-head{padding:10px 14px;font-size:12px;font-weight:600;display:flex;align-items:center;gap:7px}
.flow-head.neutral{background:var(--gray-100);color:var(--gray-500);border-bottom:1px solid var(--gray-200)}
.flow-head.teal{background:#E1F5EE;color:#085041;border-bottom:1px solid #9FE1CB}
.flow-head.green{background:#EAF3DE;color:#3B6D11;border-bottom:1px solid #C0DD97}
.flow-body{padding:11px 14px;flex:1;display:flex;flex-direction:column;gap:7px}
.fb{display:flex;justify-content:space-between;align-items:center;font-size:12px}
.fb .lbl{color:var(--gray-500);display:flex;align-items:center;gap:4px}
.fb .lbl svg{width:13px;height:13px;flex-shrink:0}
.fb .val{font-weight:600;color:var(--gray-800);font-size:12.5px}
.fb.total{border-top:1px solid var(--gray-200);padding-top:8px;margin-top:3px}
.fb.total .lbl{font-weight:600;color:var(--gray-800);font-size:12.5px}
.fb.total .val{font-size:15px}
.val-red{color:#791F1F}.val-teal{color:#085041}.val-green{color:#27500A}
.delta-badge{display:inline-flex;align-items:center;gap:3px;padding:3px 9px;border-radius:12px;font-size:10.5px;font-weight:600;margin-top:7px}
.db-teal{background:#E1F5EE;color:#085041}.db-green{background:#EAF3DE;color:#3B6D11}

/* charts */
.charts-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;margin-bottom:1.25rem}
.chart-card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid var(--gray-200);padding:1.1rem 1.2rem}
.chart-title{font-size:11px;font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.07em;margin-bottom:8px;display:flex;align-items:center;gap:5px}
.leg{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:8px;font-size:11px;color:var(--gray-500)}
.leg-i{display:flex;align-items:center;gap:4px}
.leg-sq{width:10px;height:10px;border-radius:2px;flex-shrink:0}

/* info boxes */
.info-box{border-radius:var(--radius-sm);padding:9px 13px;font-size:12px;line-height:1.55;margin-top:8px;display:flex;gap:8px;align-items:flex-start;border:1px solid transparent}
.info-box svg{width:15px;height:15px;flex-shrink:0;margin-top:1px}
.ib-info{background:#E6F1FB;color:#0C447C;border-color:#B5D4F4}
.ib-success{background:#EAF3DE;color:#3B6D11;border-color:#C0DD97}
.ib-warning{background:#FAEEDA;color:#633806;border-color:#FAC775}

/* ════════════════════════════
   RESPONSIVE MOBILE — 768px
════════════════════════════ */
@media(max-width:768px){

  /* Header */
  .header{padding:0 1rem;height:56px;}
  .brand-name{font-size:13px;}
  .brand-sub{display:none;}
  .brand-monogram{width:32px;height:32px;font-size:13px;}
  .hdr-badge{font-size:11px;padding:3px 10px;}
  .btn-back{font-size:12px;padding:6px 10px;}
  .hdr-divider{display:none;}

  /* Hero */
  .sim-hero{padding:1.2rem 1rem 1.8rem;}
  .sim-hero-label{font-size:11px;}
  .sim-hero-title{font-size:1.6rem;}
  .sim-hero-sub{font-size:12px;}

  /* Home hero */
  .hero{padding:2rem 1rem 2.5rem;}
  .hero-title{font-size:1.8rem;}
  .hero-sub{font-size:13px;}
  .stats-row{gap:.6rem;flex-wrap:wrap;justify-content:center;}
  .stat-block{min-width:80px;}

  /* Simulateurs grille */
  .sim-grid{grid-template-columns:1fr 1fr!important;gap:.7rem;}
  .sim-section-title{font-size:1rem;}

  /* Layout 2 colonnes → 1 colonne */
  .sim-grid-layout{grid-template-columns:1fr!important;gap:1rem;}
  .sim-col{min-width:0;}

  /* Main padding */
  .sim-main{padding:1rem .8rem 3rem;}
  
  /* Cards */
  .card{border-radius:10px;}
  .card-header{padding:.9rem 1rem;}
  .card-header-title{font-size:14px;}

  /* Inputs */
  .inputs-grid-3{grid-template-columns:1fr!important;}
  .inputs-grid-2{grid-template-columns:1fr!important;}
  .flow-3{grid-template-columns:1fr!important;}
  .flow-2{grid-template-columns:1fr!important;}

  /* KPI strip */
  .kpi-strip{grid-template-columns:1fr 1fr!important;}
  .kpi-block{padding:.8rem;}
  .kpi-val{font-size:1.4rem;}

  /* Charts */
  .charts-grid{grid-template-columns:1fr!important;}

  /* Section nav */
  .section-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;gap:.4rem;}
  .section-tab{white-space:nowrap;font-size:12px;padding:6px 12px;}

  /* Sidebar flottante (abattements) */
  #hf-abatt-bubble{width:calc(100vw - 32px)!important;right:0!important;left:16px!important;max-height:70vh;overflow-y:auto;}

  /* Chat bubble */
  #chat-bubble-btn{bottom:16px;right:16px;}
  #chat-panel{width:calc(100vw - 24px)!important;right:12px!important;bottom:70px;}

  /* Succession arbre */
  #hf-tree-svg{width:100%;overflow-x:auto;}
  .hf-members-form{font-size:13px;}

  /* Mode-bar IR */
  .mode-bar{flex-wrap:wrap;}
  .mode-btn{font-size:12px;padding:10px 14px;flex:1;text-align:center;}

  /* IR main grid */
  .ir-sim-main{grid-template-columns:1fr!important;padding:16px 0 40px;}
  .sticky{position:static!important;}

  /* IR accordéons */
  .acc-head{padding:12px 14px;}
  .acc-body{padding:14px;}
  .r2,.r3{grid-template-columns:1fr!important;}
  .declarants{gap:6px;}

  /* Simulateur PER résultats */
  .result-hero{padding:1.2rem 1rem;}
  .result-big{font-size:2rem;}

  /* Nav simulateurs pagination */
  .sim-nav{flex-wrap:wrap;gap:.5rem;}
  .sim-nav-btn{font-size:12px;}
}

/* ════════════════════════════
   TRÈS PETIT ÉCRAN — 400px
════════════════════════════ */
@media(max-width:400px){
  .sim-grid{grid-template-columns:1fr!important;}
  .sim-hero-title{font-size:1.35rem;}
  .hero-title{font-size:1.5rem;}
  .kpi-strip{grid-template-columns:1fr!important;}
  .hdr-badge{display:none;}
  .brand-name{font-size:12px;}
  .stat-num{font-size:1.6rem;}
}


/* ══ Pyramide patrimoniale — styles additifs uniquement ══ */
#page-pyramide .layer-input{margin-bottom:9px;border:1px solid var(--gray-200);border-radius:var(--radius-sm);overflow:hidden;transition:border-color .15s}
#page-pyramide .layer-input:hover{border-color:var(--gray-300)}
#page-pyramide .layer-input:focus-within{border-color:var(--red)}
#page-pyramide .layer-head{display:flex;align-items:center;gap:8px;padding:7px 10px;background:var(--gray-100)}
#page-pyramide .layer-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
#page-pyramide .layer-name{font-size:11.5px;font-weight:600;color:var(--gray-800);flex:1}
#page-pyramide .layer-pct{font-size:11px;font-weight:700;color:var(--red-dark);background:var(--red-light);padding:2px 7px;border-radius:10px;min-width:38px;text-align:center}
#page-pyramide .layer-body{display:flex;align-items:center;padding:6px 10px;background:var(--white);gap:6px}
#page-pyramide .layer-body input[type=number]{flex:1;font-size:14px;font-weight:600;padding:5px 8px;border:none;background:transparent;outline:none;font-family:inherit;-moz-appearance:textfield;min-width:0}
#page-pyramide .layer-body input[type=number]::-webkit-outer-spin-button,
#page-pyramide .layer-body input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none}
#page-pyramide .layer-unit{background:var(--red);color:white;font-weight:700;font-size:11px;padding:4px 8px;border-radius:5px}
#page-pyramide .legend-item{display:flex;align-items:center;gap:7px;padding:7px 9px;background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm)}
#page-pyramide .legend-dot{width:12px;height:12px;border-radius:3px;flex-shrink:0}
#page-pyramide .legend-text{min-width:0}
#page-pyramide .legend-name{font-size:11px;font-weight:600;color:var(--gray-800);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#page-pyramide .legend-pct{font-size:10px;color:var(--gray-500)}
#page-pyramide .advice-item{display:flex;align-items:flex-start;gap:8px;font-size:13px;line-height:1.5;margin-bottom:6px}
#page-pyramide .ai-dot{width:6px;height:6px;border-radius:50%;margin-top:5px;flex-shrink:0}
#page-pyramide .advice-item.ok{color:#085041}
#page-pyramide .advice-item.ok .ai-dot{background:#1D9E75}
#page-pyramide .advice-item.warn{color:#633806}
#page-pyramide .advice-item.warn .ai-dot{background:#BA7517}
#page-pyramide .advice-item.bad{color:#791F1F}
#page-pyramide .advice-item.bad .ai-dot{background:var(--red)}
#page-pyramide .bilan-item{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid transparent;margin-bottom:8px}
#page-pyramide .bilan-item.ok{background:#E1F5EE;border-color:#9FE1CB}
#page-pyramide .bilan-item.warn{background:#FAEEDA;border-color:#FAC775}
#page-pyramide .bilan-item.bad{background:var(--red-light);border-color:rgba(226,0,26,.25)}
#page-pyramide .bilan-icon{font-size:16px;flex-shrink:0;margin-top:1px}
#page-pyramide .bilan-text{display:flex;flex-direction:column;gap:3px}
#page-pyramide .bilan-text strong{font-size:12.5px;font-weight:600}
#page-pyramide .bilan-item.ok .bilan-text strong{color:#085041}
#page-pyramide .bilan-item.warn .bilan-text strong{color:#633806}
#page-pyramide .bilan-item.bad .bilan-text strong{color:#791F1F}
#page-pyramide .bilan-text span{font-size:12px;line-height:1.5;color:var(--gray-500)}

/* ══════════════════════════════════════
   MOBILE OPTIMISATIONS
══════════════════════════════════════ */

@media (max-width: 640px) {

  /* ── Simulateur Plus Values et Intérêts : colonnes empilées ── */
  .pvi-grid { grid-template-columns: 1fr !important; }
  .pvi-kpis { grid-template-columns: 1fr 1fr !important; }
  .pvi-calc-cols { flex-direction: column !important; }

  /* ── Accueil : masquer description des cartes simulateurs ── */
  .sim-card-desc { display: none !important; }
  .sim-card-name { font-size: 15px; }
  .sim-card { padding: 0; min-height: unset; }
  .sim-card-body { padding: 14px 14px 10px; }
  .sim-card-footer { padding: 10px 14px 12px; }
  .sim-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .sim-arrow { width: 30px; height: 30px; }
  .tag { font-size: 9px; padding: 2px 6px; }

  /* ── Hero ── */
  .hero-title { font-size: 1.8rem !important; line-height: 1.2; }
  .hero-desc { font-size: 13px; }
  .hero-stats { gap: 12px; flex-wrap: wrap; }
  .stat-num { font-size: 1.5rem !important; }
  .stat-divider { display: none; }

  /* ── Pages simulateurs : layout 1 colonne ── */
  .sim-grid-layout { grid-template-columns: 1fr !important; gap: 1rem !important; }
  .sim-col { min-width: 0; }

  /* ── Formulaires ── */
  .card-body { padding: 12px; }
  .card { border-radius: 10px; }
  .sim-hero { padding: 1.4rem 1rem 1.8rem; }
  .sim-hero-title { font-size: 1.5rem !important; }
  .sim-hero-sub { font-size: 12.5px; }
  .sim-hero-label { font-size: 9px; }
  .sim-main { padding: 1rem 0.75rem 3rem; }

  /* ── Sliders & inputs ── */
  .slider-row { gap: 6px; }
  .num-input-wrap input { font-size: 14px; }
  .tabs { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  
  /* ── Résultats / récap ── */
  .recap-card { border-radius: 10px; }
  .flow-3 { grid-template-columns: 1fr !important; }
  .flow-2 { grid-template-columns: 1fr !important; }
  .metric-row { flex-wrap: wrap; gap: 8px; }
  .kpi-strip { grid-template-columns: 1fr 1fr !important; }
  .kpi-val { font-size: 16px !important; }
  
  /* ── Header sim ── */
  .header-sim { padding: 0 1rem; height: 52px; }
  .hdr-divider { display: none; }
  .hdr-badge { font-size: 10px; padding: 3px 8px; }

  /* ── Pyramide ── */
  #page-pyramide .sim-grid-layout { grid-template-columns: 1fr !important; }
  #pyr-legend-grid { grid-template-columns: 1fr 1fr !important; }

  /* ── IR simulateur ── */
  .s-hint-mode, .s-hint { font-size: 11px; }
  .tranche-bar { font-size: 10px; }

  /* ── Succession ── */
  .heritier-card { font-size: 12px; }
  
  /* ── Fan éventail ── */
  .fan-panel { width: calc(100vw - 32px) !important; right: 16px !important; left: 16px !important; bottom: 80px !important; }
  #fan-btn { bottom: 80px; right: 16px; width: 50px; height: 50px; }
  #fan-items { bottom: 142px; right: 16px; }
  #chat-btn { bottom: 16px; right: 16px; width: 50px; height: 50px; }
  #chat-window { right: 16px; width: calc(100vw - 32px) !important; }
}

@media (max-width: 400px) {
  .sim-grid { grid-template-columns: 1fr; }
  .hero-title { font-size: 1.5rem !important; }
  .sim-card-name { font-size: 14px; }
}


/* ══ NAV MENU ══ */
.nav-menu{display:flex;align-items:center;gap:4px;position:relative}
.nav-item{position:relative}
.nav-btn{display:flex;align-items:center;gap:6px;padding:7px 14px;border-radius:20px;border:none;background:transparent;color:var(--gray-800);font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s;white-space:nowrap}
.nav-btn:hover,.nav-item:hover .nav-btn{background:rgba(226,0,26,.08);color:var(--red)}
.nav-btn svg{transition:transform .2s}
.nav-item:hover .nav-btn svg.nav-arrow{transform:rotate(180deg)}
.nav-dropdown{position:absolute;top:100%;left:0;min-width:260px;background:white;border-radius:14px;box-shadow:0 8px 32px rgba(0,0,0,.14);border:1px solid var(--gray-200);padding:14px 6px 6px;opacity:0;pointer-events:none;transition:opacity .15s;z-index:500}
.nav-item:hover .nav-dropdown{opacity:1;pointer-events:auto}
a.nav-dd-item{text-decoration:none;display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:8px;cursor:pointer;transition:background .12s;font-size:12.5px;font-weight:500;color:var(--gray-800);width:100%}a.nav-dd-item:hover{background:var(--red-light);color:var(--red-dark)}
.gcount{margin-left:auto;font-size:10px;font-weight:700;color:var(--red);background:var(--red-light);border-radius:20px;padding:2px 9px;white-space:nowrap}
.nav-dd-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:8px;cursor:pointer;transition:background .12s;font-size:12.5px;font-weight:500;color:var(--gray-800);border:none;background:transparent;width:100%;text-align:left;font-family:inherit}
.nav-dd-item:hover{background:var(--red-light);color:var(--red-dark)}
.nav-dd-item.soon{opacity:.5;cursor:default}
.nav-dd-item.soon:hover{background:transparent;color:var(--gray-800)}
.nav-dd-sep{height:1px;background:var(--gray-200);margin:4px 0}
.nav-dd-item svg{flex-shrink:0;color:var(--red)}
.nav-dd-badge{font-size:9px;font-weight:700;padding:1px 6px;border-radius:8px;background:var(--red-light);color:var(--red-dark);margin-left:auto}


@media (max-width: 768px) {
  .nav-menu { gap: 0; }
  .nav-btn span:not(.nav-dd-badge) { display: none; }
  .nav-btn { padding: 7px 10px; }
  .nav-dropdown { left: auto; right: 0; transform: none; min-width: 200px !important; }
  .nav-item:hover .nav-dropdown { transform: none; }
}
@media (max-width: 480px) {
  .nav-menu .nav-item:nth-child(n+4) { display: none; }
  .nav-btn { padding: 6px 8px; }
}

/* ═══════════════════════════════════════
   REFONTE MOBILE COMPLÈTE — 600px
═══════════════════════════════════════ */
#mob-hamburger { display: none !important; }
@media (max-width: 600px) {
  /* ── Layout home mobile (1 colonne) ── */
  .home-sim-layout {
    display: flex !important;
    flex-direction: column !important;
    gap: .75rem !important;
  }


  /* ── Cards simulateurs mobile ── */
  .sim-card-name { font-size: 14px !important; }
  .sim-card-desc { font-size: 12px !important; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
  .sim-card-footer { flex-wrap: wrap; gap: 6px; }
  .sim-arrow { width: 28px !important; height: 28px !important; flex-shrink: 0; }



  /* ── Header : menu hamburger ── */
  .header { padding: 0 .75rem; height: 52px; }
  .brand-sub { display: none; }
  .brand-name { font-size: 13px; }
  .brand-monogram { width: 30px; height: 30px; font-size: 12px; }

  /* Masquer la nav desktop, afficher le hamburger */
  .nav-menu { display: none; }
  #mob-hamburger { display: flex !important; }

  /* Drawer mobile */
  #mob-drawer {
    position: fixed; top: 52px; left: 0; right: 0; bottom: 0;
    background: white; z-index: 999; overflow-y: auto;
    padding: 1rem; display: none; flex-direction: column; gap: 4px;
    box-shadow: 0 8px 32px rgba(0,0,0,.18);
  }
  #mob-drawer.open { display: flex; }
  #mob-drawer > * { flex-shrink: 0; }
  .mob-nav-btn {
    display: flex; align-items: center; gap: 10px; width: 100%;
    padding: 12px 14px; border: none; background: transparent;
    font-family: inherit; font-size: 14px; font-weight: 600;
    color: var(--gray-800); border-radius: 10px; cursor: pointer; text-align: left;
  }
  .mob-nav-btn:hover, .mob-nav-btn.active { background: var(--red-light); color: var(--red-dark); }
  .mob-nav-sep { height: 1px; background: var(--gray-200); margin: 6px 0; }
  .mob-nav-section { font-size: 10px; font-weight: 700; text-transform: uppercase;
    letter-spacing: .08em; color: var(--gray-400); padding: 8px 14px 4px; }
  /* ── Drawer mobile accordéon ── */
  .mob-acc-item { border-radius: 10px; overflow: hidden; margin: 1px 0; }
  .mob-acc-btn {
    display: flex; align-items: center; justify-content: space-between;
    width: 100%; padding: 12px 14px; border: none; background: transparent;
    font-family: inherit; font-size: 14px; font-weight: 600;
    color: var(--gray-800); cursor: pointer; text-align: left;
    border-radius: 10px; transition: background .15s;
  }
  .mob-acc-btn:hover, .mob-acc-btn.open { background: var(--red-light); color: var(--red-dark); }
  .mob-acc-arrow { transition: transform .2s; flex-shrink: 0; }
  .mob-acc-btn.open .mob-acc-arrow { transform: rotate(180deg); }
  .mob-acc-body {
    display: none; flex-direction: column; gap: 1px;
    padding: 4px 0 8px 0; background: var(--gray-50);
    border-radius: 0 0 10px 10px;
  }
  .mob-acc-body.open { display: flex; }
  .mob-nav-sub {
    display: flex; align-items: center; gap: 8px; width: 100%;
    padding: 10px 14px 10px 28px; border: none; background: transparent;
    font-family: inherit; font-size: 13.5px; color: var(--gray-700);
    cursor: pointer; text-align: left; border-radius: 8px; transition: background .15s;
  }
  .mob-nav-sub:hover { background: var(--red-light); color: var(--red-dark); }
  .mob-nav-sub-main { font-weight: 700; color: var(--gray-900); padding-left: 14px; }
  .mob-nav-sub-sep { height: 1px; background: var(--gray-200); margin: 4px 14px; }
  .mob-badge {
    margin-left: auto; font-size: 11px; font-weight: 700;
    background: var(--red-light); color: var(--red-dark);
    padding: 1px 7px; border-radius: 10px;
  }


  /* ── Hero accueil ── */
  .hero { padding: 1.5rem .75rem 2rem; }
  .hero-title { font-size: 1.5rem; line-height: 1.2; }
  .hero-desc { font-size: 13px; }
  .hero-stats { gap: .5rem; flex-wrap: wrap; }

  /* ── Grilles simulateurs ── */
  .sim-grid { grid-template-columns: 1fr !important; gap: .75rem; }
  .sim-grid-layout { grid-template-columns: 1fr !important; }
  .sim-col { min-width: 0; }
  .inputs-grid-3, .inputs-grid-2, .flow-3, .flow-2 { grid-template-columns: 1fr !important; }
  .kpi-strip { grid-template-columns: 1fr 1fr !important; }
  .charts-grid { grid-template-columns: 1fr !important; }

  /* ── Cards ── */
  .card { border-radius: 10px; }
  .card-header { padding: .75rem .9rem; }
  .card-header-title { font-size: 13px; }
  .sim-main { padding: .75rem .6rem 4rem; }

  /* ── Marchés financiers ── */
  #mkt-chart-wrap { height: 280px !important; }
  #mkt-chart-card .card-header { flex-wrap: wrap; gap: 6px; padding: 8px 10px; }
  .mkt-per { padding: 3px 7px; font-size: 10px; }
  /* Cacher plage de dates sur mobile (trop étroite) — boutons période suffisent */
  #mkt-chart-card .card-header span[style*="Du"],
  #mkt-date-from, #mkt-date-to,
  #mkt-chart-card .card-header button[onclick*="mktApplyDates"] { display: none !important; }
  #mkt-chart-card .card-header div[style*="color:var(--gray-500)"] { display: none; }

  /* ── Simulateur immo ── */
  #page-immo .sim-grid-layout { grid-template-columns: 1fr !important; }
  .immo-check-label { font-size: 12px; padding: 6px 10px; }
  /* Prestations sur 2 colonnes au lieu de 4 */
  #page-immo .sim-main > div > div[style*="grid-template-columns:1fr 1fr 1fr 1fr"] {
    grid-template-columns: 1fr 1fr !important;
  }

  /* ── Succession arbre ── */
  #hf-tree-svg { width: 100%; overflow-x: auto; }
  .hf-members-form { font-size: 13px; }

  /* ── IR ── */
  .mode-bar { flex-wrap: wrap; }
  .mode-btn { font-size: 12px; padding: 8px 10px; flex: 1; text-align: center; }
  .ir-sim-main { grid-template-columns: 1fr !important; }
  .sticky { position: static !important; }
  .r2, .r3 { grid-template-columns: 1fr !important; }

  /* ── PER résultats ── */
  .result-hero { padding: 1rem .75rem; }
  .result-big { font-size: 1.8rem; }

  /* ── Pyramide ── */
  #page-pyramide .sim-grid-layout { grid-template-columns: 1fr !important; }

  /* ── Chat ── */
  #chat-bubble-btn { bottom: 12px; right: 12px; }
  #chat-panel { width: calc(100vw - 16px) !important; right: 8px !important; bottom: 66px; }

  /* ── Sidebar flottante ── */
  #hf-abatt-bubble { width: calc(100vw - 24px) !important; right: 0 !important; left: 12px !important; max-height: 65vh; overflow-y: auto; }

  /* ── Tabs section scrollables ── */
  .section-tabs { overflow-x: auto; -webkit-overflow-scrolling: touch; flex-wrap: nowrap; gap: .35rem; padding-bottom: 4px; }
  .section-tab { white-space: nowrap; font-size: 11px; padding: 5px 10px; }
  .sim-nav { flex-wrap: wrap; gap: .4rem; }
  .sim-nav-btn { font-size: 11px; }

  /* ── Table DVF transactions ── */
  #immo-ville-zone table { font-size: 11px; }
  #immo-ville-zone td, #immo-ville-zone th { padding: 5px 6px; }
}

/* ── Très petit : 380px ── */
@media (max-width: 380px) {
  .sim-grid { grid-template-columns: 1fr !important; }
  .hero-title { font-size: 1.3rem; }
  .kpi-strip { grid-template-columns: 1fr !important; }
  .brand-name { font-size: 12px; }
}


.mkt-chip{padding:4px 12px;border-radius:20px;border:1.5px solid var(--gray-200);background:white;font-size:11.5px;font-weight:600;color:var(--gray-700);cursor:pointer;font-family:inherit;transition:all .12s}
.mkt-chip:hover{background:var(--red-light);border-color:var(--red);color:var(--red-dark)}
.news-chip{padding:6px 14px;border-radius:20px;border:1.5px solid var(--gray-200);background:white;font-size:12.5px;font-weight:600;color:var(--gray-700);cursor:pointer;font-family:inherit;transition:all .12s}
/* ── Bulle Légifrance ── */
.lf-ref{color:var(--red-dark);border-bottom:1px dashed var(--red);cursor:help;white-space:nowrap;font-weight:inherit}
.lf-ref:hover{color:var(--red);background:var(--red-light);border-radius:3px;padding:0 2px;margin:0 -2px}
.lf-tooltip{position:fixed;z-index:99999;width:380px;max-width:92vw;background:white;border:1.5px solid var(--gray-200);border-radius:14px;box-shadow:0 8px 32px rgba(0,0,0,.14);padding:0;opacity:0;pointer-events:none;transition:opacity .15s;font-family:var(--font-sans)}
.lf-tooltip.visible{opacity:1;pointer-events:auto}
.lf-tooltip-head{display:flex;align-items:center;justify-content:space-between;padding:11px 14px 9px;border-bottom:1px solid var(--gray-100);gap:8px}
.lf-tooltip-badge{font-size:10px;font-weight:700;color:var(--red-dark);background:var(--red-light);padding:2px 8px;border-radius:20px;white-space:nowrap}
.lf-tooltip-num{font-size:12px;font-weight:700;color:var(--gray-800);flex:1;min-width:0}
.lf-tooltip-close{width:22px;height:22px;border-radius:50%;border:none;background:var(--gray-100);cursor:pointer;font-size:14px;line-height:22px;text-align:center;color:var(--gray-500);flex-shrink:0}
.lf-tooltip-body{padding:12px 14px;font-size:12px;color:var(--gray-700);line-height:1.7;max-height:260px;overflow-y:auto}
.lf-tooltip-foot{padding:8px 14px;border-top:1px solid var(--gray-100);display:flex;align-items:center;font-size:10.5px;color:var(--gray-400)}
.lf-tooltip-loading{padding:24px;text-align:center;color:var(--gray-400);font-size:12px}
.lf-etat{font-size:10px;font-weight:700;padding:1px 7px;border-radius:10px}
.lf-etat.vigueur{color:#15803d;background:#dcfce7}
.lf-etat.abroge{color:#b91c1c;background:#fee2e2}
.lf-etat.modifie{color:#92400e;background:#fef3c7}
.news-chip:hover{border-color:var(--red);color:var(--red-dark)}
.news-chip.active{background:var(--red);border-color:var(--red);color:white}
.mkt-per{padding:3px 10px;border-radius:20px;border:1px solid var(--gray-200);background:white;font-size:11px;font-weight:600;color:var(--gray-700);cursor:pointer;font-family:inherit;transition:all .12s}
.mkt-per:hover,.mkt-per.active{background:var(--red);border-color:var(--red);color:white}
.mkt-news-item:hover{border-color:var(--red) !important;box-shadow:0 4px 14px rgba(0,0,0,.08);transform:translateY(-1px)}
.mkt-sugg-item{display:flex;align-items:center;justify-content:space-between;padding:9px 14px;cursor:pointer;border-bottom:1px solid var(--gray-200);transition:background .1s}
.mkt-sugg-item:hover,.mkt-sugg-item.highlighted{background:var(--gray-100)}
.mkt-sugg-item:last-child{border-bottom:none}


/* ── Estimation Immobilière ── */
.immo-dpe-btn{width:36px;height:36px;border-radius:8px;border:2px solid var(--gray-200);background:white;font-size:14px;font-weight:800;cursor:pointer;font-family:inherit;transition:all .12s}
.dpe-A{color:#319834}.dpe-B{color:#50B946}.dpe-C{color:#A0C73A}.dpe-D{color:#F5C500}.dpe-E{color:#F59100}.dpe-F{color:#E6511A}.dpe-G{color:#C2001F}
.immo-dpe-btn.dpe-active{border-width:3px;transform:scale(1.15);box-shadow:0 2px 8px rgba(0,0,0,.15)}
.immo-check-label{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:8px;border:1.5px solid var(--gray-200);cursor:pointer;font-size:13px;color:var(--gray-700);transition:all .12s;background:white}
.immo-check-label:hover{border-color:var(--red);background:var(--red-light)}
.immo-check-label input[type=checkbox]{accent-color:var(--red);width:15px;height:15px;flex-shrink:0}
.immo-check-label input:checked + span{color:var(--red-dark);font-weight:600}

.immo-type-btn{display:flex;align-items:center;gap:6px;flex:1;padding:10px 12px;border:2px solid var(--gray-200);border-radius:var(--radius-sm);background:white;font-family:inherit;font-size:13px;font-weight:600;color:var(--gray-600);cursor:pointer;transition:all .15s;justify-content:center}
.immo-type-btn.active{border-color:var(--red);background:var(--red-light);color:var(--red-dark)}

.immo-sugg-item:hover{background:var(--gray-100)!important}

/* ── ESTIMATION IMMOBILIÈRE — Refonte visuelle ── */

/* Hero estimation */
.immo-result-wrap{display:flex;flex-direction:column;gap:1rem}
.immo-hero-result{
  position:relative;border-radius:18px;overflow:hidden;
  background:linear-gradient(135deg,#7c0410 0%,#a00819 45%,#e2001a 100%);
  color:white;padding:2.25rem 2rem 2rem;
  box-shadow:0 12px 32px -8px rgba(226,0,26,.35), 0 4px 12px rgba(0,0,0,.08);
}
.immo-hero-bg{
  position:absolute;inset:0;opacity:.35;pointer-events:none;
  background:
    radial-gradient(circle at 88% 12%,rgba(255,255,255,.22) 0,transparent 35%),
    radial-gradient(circle at 8% 90%,rgba(255,255,255,.12) 0,transparent 45%);
}
.immo-hero-content{position:relative;text-align:center}
.immo-hero-eyebrow{
  font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;
  color:rgba(255,255,255,.78);margin-bottom:.7rem;
}
.immo-hero-price{
  font-family:'Playfair Display',Georgia,serif;
  font-size:3.4rem;font-weight:700;line-height:1;letter-spacing:-.015em;
  text-shadow:0 2px 12px rgba(0,0,0,.18);
}
.immo-hero-bracket{
  margin-top:1.2rem;display:flex;align-items:center;justify-content:center;gap:.85rem;
  padding-top:1rem;border-top:1px solid rgba(255,255,255,.18);
}
.immo-bracket-item{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:108px}
.immo-bracket-arrow{font-size:14px;color:rgba(255,255,255,.85);margin-bottom:1px;font-weight:700}
.immo-bracket-label{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.7)}
.immo-bracket-value{font-size:17px;font-weight:700;color:white;font-family:'Playfair Display',serif}
.immo-bracket-center{color:white !important}
.immo-bracket-dot{width:4px;height:4px;border-radius:50%;background:rgba(255,255,255,.4)}

/* KPI Grid */
.immo-kpi-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;
}
.immo-kpi{
  background:white;border:1px solid var(--gray-200);border-radius:12px;
  padding:.85rem .9rem;display:flex;align-items:center;gap:.7rem;
  transition:all .15s;
}
.immo-kpi:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.06);border-color:var(--gray-300)}
.immo-kpi-icon{
  width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.immo-kpi-label{font-size:10.5px;color:var(--gray-500);font-weight:600;letter-spacing:.02em;text-transform:uppercase;margin-bottom:2px}
.immo-kpi-val{font-size:15px;font-weight:700;color:var(--gray-800);line-height:1.1}

/* Analysis grid : Radar + Coefficients */
.immo-analysis{
  display:grid;grid-template-columns:340px 1fr;gap:1rem;
}
.immo-analysis-card{
  background:white;border:1px solid var(--gray-200);border-radius:12px;padding:1.1rem 1.15rem;
}
.immo-section-title{
  display:flex;align-items:center;gap:.55rem;
  font-size:13px;font-weight:700;color:var(--gray-800);
  margin-bottom:.9rem;letter-spacing:.01em;
}
.immo-section-num{
  display:inline-flex;align-items:center;justify-content:center;
  width:22px;height:22px;border-radius:6px;
  background:var(--red);color:white;font-size:11px;font-weight:800;
}
.immo-source-tag{
  margin-left:auto;font-size:10px;font-weight:400;color:var(--gray-400);
  letter-spacing:.02em;
}
.immo-radar-wrap{display:flex;justify-content:center;padding:.25rem 0}
.immo-radar-legend{
  text-align:center;font-size:10.5px;color:var(--gray-400);
  margin-top:.4rem;letter-spacing:.02em;
}

/* Coefficient list */
.immo-adj-list{display:flex;flex-direction:column;gap:1px;max-height:300px;overflow-y:auto}
.immo-adj-list > div{
  display:flex;justify-content:space-between;align-items:center;
  padding:7px 10px;font-size:12.5px;
  border-radius:6px;transition:background .12s;
}
.immo-adj-list > div:hover{background:var(--gray-100)}

/* DVF section */
.immo-dvf-section{
  background:white;border:1px solid var(--gray-200);border-radius:12px;padding:1.1rem 1.15rem;
}
.immo-dvf-empty{
  text-align:center;color:var(--gray-400);padding:1.6rem .8rem;font-size:13px;
  background:var(--gray-100);border-radius:8px;
}

/* Méthodologie */
.immo-methodo{
  display:flex;gap:.85rem;align-items:flex-start;
  background:linear-gradient(180deg,#FFFBEB 0%,#FEF3C7 100%);
  border:1px solid #FCD34D;border-radius:10px;
  padding:.9rem 1.1rem;font-size:11.5px;color:#78350F;line-height:1.55;
}
.immo-methodo-icon{font-size:18px;line-height:1;flex-shrink:0;margin-top:1px}
.immo-methodo em{color:#92400E;font-style:italic}

/* État initial vide */
.immo-empty-state{
  background:white;border:1px solid var(--gray-200);border-radius:14px;
  padding:2.5rem 2rem;text-align:center;
  position:relative;overflow:hidden;
}
.immo-empty-state::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(circle at 50% 0%,rgba(226,0,26,.04) 0,transparent 50%);
}
.immo-empty-illustration{
  display:flex;justify-content:center;margin-bottom:.9rem;
  filter:drop-shadow(0 4px 12px rgba(226,0,26,.15));
}
.immo-empty-title{
  font-family:'Playfair Display',Georgia,serif;
  font-size:1.4rem;color:var(--gray-800);
  margin-bottom:.5rem;font-weight:600;
}
.immo-empty-desc{
  font-size:13px;color:var(--gray-500);line-height:1.55;
  max-width:520px;margin:0 auto 1.1rem;
}
.immo-empty-desc strong{color:var(--gray-800);font-weight:600}
.immo-empty-features{
  display:flex;flex-wrap:wrap;justify-content:center;gap:.45rem;
}
.immo-empty-chip{
  font-size:11.5px;padding:5px 11px;border-radius:50px;
  background:var(--gray-100);color:var(--gray-700);
  border:1px solid var(--gray-200);
}

/* Responsive */
@media(max-width:900px){
  .immo-hero-price{font-size:2.6rem}
  .immo-kpi-grid{grid-template-columns:repeat(2,1fr)}
  .immo-analysis{grid-template-columns:1fr}
  .immo-radar-wrap canvas{max-width:280px;width:100%;height:auto}
}
@media(max-width:560px){
  .immo-hero-result{padding:1.6rem 1.1rem}
  .immo-hero-price{font-size:2rem}
  .immo-hero-bracket{flex-wrap:wrap;gap:.5rem}
  .immo-bracket-item{min-width:0;flex:1}
  .immo-bracket-dot{display:none}
}


/* sim-guide */
.sim-guide{max-width:1100px;margin:0 auto;padding:1rem 2rem 0}
.sim-guide-toggle{display:inline-flex;align-items:center;gap:8px;background:white;border:1.5px solid var(--red);color:var(--red-dark);cursor:pointer;font-family:inherit;font-size:12.5px;font-weight:700;padding:8px 16px;border-radius:20px;transition:background .15s,color .15s}
.sim-guide-toggle:hover{background:var(--red);color:white}
.sim-guide-toggle.open{background:var(--red);color:white}
.sim-guide-toggle svg{transition:transform .2s;flex-shrink:0}
.sim-guide-toggle.open svg{transform:rotate(180deg)}
.sim-guide-body{display:none;margin-top:10px;background:white;border:1px solid var(--border);border-radius:12px;padding:1.1rem 1.3rem;font-size:13px;color:var(--gray-600);line-height:1.75;box-shadow:0 4px 16px rgba(0,0,0,.06)}
.sim-guide-body.open{display:block}
.sim-guide-steps{list-style:none;padding:0;margin:0;counter-reset:step}
.sim-guide-steps li{counter-increment:step;display:flex;gap:10px;align-items:flex-start;padding:7px 0;border-bottom:1px solid var(--warm-gray)}
.sim-guide-steps li:last-child{border-bottom:none}
.sim-guide-steps li::before{content:counter(step);min-width:22px;height:22px;border-radius:50%;background:var(--red-light);color:var(--red-dark);font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px}
/* hamburger mobile */
#mob-hamburger{display:none}
@media(max-width:600px){
  .nav-menu{display:none}
  #mob-hamburger{display:flex!important}
  .header{padding:0 .75rem;height:52px}
  .brand-sub{display:none}
  .sim-grid{grid-template-columns:1fr 1fr!important;gap:.6rem}
  .sim-grid-layout{grid-template-columns:1fr!important}
  .inputs-grid-3,.inputs-grid-2,.flow-3,.flow-2{grid-template-columns:1fr!important}
  .kpi-strip{grid-template-columns:1fr 1fr!important}
  .charts-grid{grid-template-columns:1fr!important}
  .sim-main{padding:.75rem .6rem 4rem}
  .section-tabs{overflow-x:auto;flex-wrap:nowrap}
  .section-tab{white-space:nowrap;font-size:11px}
}
@media(max-width:380px){.sim-grid{grid-template-columns:1fr!important}}

.sim-card.available{position:relative;overflow:hidden}
.sim-card-overlay{position:absolute;inset:0;background:linear-gradient(135deg,var(--red-darker),var(--red));display:flex;flex-direction:column;justify-content:center;padding:1.4rem;opacity:0;transition:opacity .25s;pointer-events:none}
.sim-card.available:hover .sim-card-overlay{opacity:1}
.sim-card-overlay-title{font-family:'Playfair Display',serif;font-size:1rem;font-weight:700;color:white;margin-bottom:8px;line-height:1.3}
.sim-card-overlay-desc{font-size:12px;color:rgba(255,255,255,.85);line-height:1.65}
.sim-card-overlay-cta{margin-top:12px;font-size:12px;font-weight:600;color:white}

/* ===== Pages catégorie guides (transmission, etc.) ===== */
.guides-cat-hero{padding:2.5rem 2.5rem 3rem;color:#fff;background:linear-gradient(135deg,var(--red-darker) 0%,var(--red-dark) 60%,var(--red) 100%)}
.guides-cat-back{display:flex;align-items:center;gap:7px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);border-radius:10px;padding:7px 14px;color:#fff;font-family:inherit;font-size:12px;font-weight:600;cursor:pointer;margin-bottom:1.25rem;transition:background .2s}
.guides-cat-back:hover{background:rgba(255,255,255,.22)}
.guides-cat-hero-icon{font-size:2rem;line-height:1;margin-bottom:.4rem}
.guides-cat-hero-title{font-family:'Playfair Display',serif;font-size:2rem;font-weight:700;color:#fff;margin:0 0 .5rem}
.guides-cat-hero-sub{font-size:14px;color:rgba(255,255,255,.7);margin:0;max-width:600px;line-height:1.6}
.guides-cat-body{max-width:1100px;margin:0 auto;padding:2.5rem 2rem 5rem}
.guides-cat-section{margin-bottom:2.5rem}
.guides-cat-section-title{display:flex;align-items:center;gap:8px;font-family:'Playfair Display',serif;font-size:1.15rem;font-weight:700;color:var(--gray-800);margin-bottom:1.1rem}
.guides-cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.85rem}
.guide-card-cat{position:relative;background:#fff;border:1px solid var(--border);border-radius:14px;overflow:hidden;cursor:pointer;transition:transform .2s,box-shadow .2s;box-shadow:0 1px 4px rgba(0,0,0,.06);padding:0 0 .8rem}
.guide-card-cat:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(0,0,0,.1)}
.guide-card-cat-num{display:flex;align-items:center;justify-content:flex-start;padding:.7rem 1rem;background:var(--red-light);font-family:'Playfair Display',serif;font-size:.95rem;font-weight:700;color:var(--red)}
.guide-card-cat-title{padding:.75rem 1rem .35rem;font-family:'Playfair Display',serif;font-size:1rem;font-weight:700;color:var(--gray-800);line-height:1.3}
.guide-card-cat-desc{padding:0 1rem .6rem;font-size:12.5px;color:var(--gray-500);line-height:1.6}
.guide-card-cat-meta{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem 0;margin-top:.2rem;font-size:11px;font-weight:600;color:var(--red);border-top:1px solid var(--gray-100)}
.guide-card-cat-arrow{color:var(--red);font-size:1rem;font-weight:700;transition:transform .2s}
.guide-card-cat:hover .guide-card-cat-arrow{transform:translateX(4px)}
@media(max-width:640px){.guides-cat-hero{padding:2rem 1.25rem 2.5rem}.guides-cat-hero-title{font-size:1.6rem}.guides-cat-body{padding:2rem 1.25rem 3rem}.guides-cat-grid{grid-template-columns:1fr}}

/* ══ MODE PRÉSENTATION ══ */
body.presentation-mode .header{display:none!important}
body.presentation-mode .site-footer{display:none!important}
body.presentation-mode .sim-guide{display:none!important}
body.presentation-mode .sim-hero-sub{display:none!important}
body.presentation-mode .sim-hero-label{display:none!important}
body.presentation-mode .sim-hero{padding:.9rem 2rem 1.4rem!important}
body.presentation-mode .sim-hero-inner{display:flex;align-items:center;justify-content:space-between;gap:16px}
body.presentation-mode .sim-hero-title{font-size:1.5rem!important;margin-bottom:0!important}
body.presentation-mode .sim-main{padding-top:1.25rem!important;padding-bottom:2rem!important;max-width:100%!important}
body.presentation-mode .ir-sim-main{padding-top:1.25rem!important}
body.presentation-mode .page.active{min-height:100vh;background:#faf8f5}
body.presentation-mode .card,.presentation-mode .recap-card,.presentation-mode .acc{box-shadow:0 2px 16px rgba(0,0,0,.08)!important}
body.presentation-mode .kpi-val,.presentation-mode .metric-value,.presentation-mode .res-hero-num{font-size:120%!important}
#pres-exit-btn{display:none;position:fixed;top:14px;right:18px;z-index:9999;background:rgba(226,0,26,.92);color:white;border:none;border-radius:20px;padding:7px 16px 7px 12px;font-size:12.5px;font-weight:700;cursor:pointer;font-family:inherit;box-shadow:0 3px 12px rgba(0,0,0,.25);display:flex;align-items:center;gap:6px;backdrop-filter:blur(4px);transition:background .15s}
#pres-exit-btn:hover{background:#c50018}
body:not(.presentation-mode) #pres-exit-btn{display:none!important}
body.presentation-mode #pres-exit-btn{display:flex!important}
.pres-btn{display:flex;align-items:center;gap:6px;padding:7px 14px;background:rgba(255,255,255,0.15);border:1px solid rgba(255,255,255,0.3);color:white;border-radius:20px;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit;transition:background .15s}
.pres-btn:hover{background:rgba(255,255,255,0.28)}
body.presentation-mode .pres-btn{display:none!important}

/* ════════════════════════════════════════════════════
   FINITION DESIGN (v6.216) — additif, sans refonte
   ════════════════════════════════════════════════════ */
:root{
  /* Échelle d'espacement cohérente */
  --sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;
  /* Ombres plus douces et hiérarchisées */
  --shadow-xs:0 1px 2px rgba(42,36,36,.04);
  --shadow-hover:0 10px 30px rgba(162,0,20,.13);
  --ring:0 0 0 3px rgba(226,0,26,.15);
  /* Transition standard */
  --ease:cubic-bezier(.4,0,.2,1);
}

/* — Typographie : plus de lisibilité, titres affinés — */
.sim-hero-title{letter-spacing:-.02em;line-height:1.12}
h1,.guide-h1{letter-spacing:-.02em}
.card-title{letter-spacing:.01em}
p,.sim-card-desc{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}

/* — Cartes simulateurs : élévation au survol, hauteur homogène — */
.sim-grid{align-items:stretch}
.sim-card.available,.sim-card.soon{min-height:300px}
.sim-card.available{
  background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius);
  box-shadow:var(--shadow-xs);overflow:hidden;height:100%;
  transition:transform .22s var(--ease),box-shadow .22s var(--ease),border-color .22s var(--ease);
  will-change:transform;
}
.sim-card.available:hover{
  transform:translateY(-4px);
  box-shadow:var(--shadow-hover);
  border-color:rgba(226,0,26,.25);
}
.sim-card.available:hover .sim-arrow{background:var(--red);transform:translateX(2px)}
.sim-arrow{transition:transform .2s var(--ease),background .2s var(--ease)}
.sim-card-stripe{transition:height .22s var(--ease)}
.sim-card.available:hover .sim-card-stripe{height:5px}

/* — Cartes "à venir" : un peu plus discrètes — */
.sim-card.soon{opacity:.72;transition:opacity .2s var(--ease)}
.sim-card.soon:hover{opacity:.9}

/* — Boutons : transition douce + état focus accessible — */
button,.sim-guide-toggle,a.nav-dd-item{transition:background .18s var(--ease),color .18s var(--ease),box-shadow .18s var(--ease),transform .12s var(--ease)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:none;box-shadow:var(--ring);border-radius:var(--radius-sm)}

/* — Apparition douce des résultats de simulateurs — */
@keyframes hpFadeUp{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.card{animation:hpFadeUp .35s var(--ease) both}

/* — Menu déroulant : items plus aérés + survol net — */
.nav-dd-item{border-radius:7px;padding:7px 10px}
.nav-dd-item:hover{background:var(--red-light);color:var(--red-dark)}
.nav-dd-sep{margin:5px 0}

/* — Liens cliquables : curseur cohérent — */
.sim-card.available,.nav-dd-item,.sim-guide-toggle{cursor:pointer}

/* — Tableaux de résultats : lignes plus lisibles — */
table tr{transition:background .12s var(--ease)}

/* — Respecter les préférences de réduction de mouvement — */
@media (prefers-reduced-motion:reduce){
  *,.card,.sim-card.available{animation:none!important;transition:none!important}
}

/* ── LOT 2 : harmonisation composants + hiérarchie couleurs ── */

/* En-têtes de cartes : dégradé subtil cohérent partout */
.card-header{background:linear-gradient(180deg,var(--red-light),#fdf1f3)}

/* Champs de saisie : focus rouge cohérent, transition douce */
input[type="number"],input[type="text"],select,.sel{
  transition:border-color .16s var(--ease),box-shadow .16s var(--ease)!important;
}
input[type="number"]:focus,input[type="text"]:focus,select:focus,.sel:focus{
  border-color:var(--red)!important;box-shadow:0 0 0 3px rgba(226,0,26,.10)!important;outline:none;
}

/* Séparateurs de section dans les simulateurs : plus fins et élégants */
.sep{position:relative}

/* Tableaux de rapport et de résultats : en-tête plus lisible, lignes alternées douces */
.rpt-table thead th{font-weight:600;color:var(--gray-500);font-size:11px;text-transform:uppercase;letter-spacing:.04em}
.rpt-table tbody tr:nth-child(even){background:rgba(247,246,246,.5)}

/* Badges "Disponible" / "À venir" : un peu plus de présence */
.sim-badge{letter-spacing:.04em;font-weight:700}
.badge-active{background:var(--red-light);color:var(--red-dark)}

/* Tags des cartes : contour léger pour mieux les détacher du fond */
.sim-tags .tag{transition:background .15s var(--ease),color .15s var(--ease)}
.sim-card.available:hover .sim-tags .tag{background:var(--red-light);color:var(--red-dark)}

/* Boutons principaux rouges : léger relief au survol */
button[onclick*="simPrint"],button[onclick*="simShare"]{transition:background .18s var(--ease),transform .12s var(--ease)}

/* Hiérarchie : le texte secondaire en gris, le rouge réservé aux accents/actions */
.sim-card-desc{color:var(--gray-500)}
.sim-footer-note{color:var(--gray-400);line-height:1.6}

/* Hero : titres plus percutants, sous-titre plus lisible */
.sim-hero-sub{line-height:1.6;opacity:.95}

/* Cartes : coins légèrement plus généreux pour un rendu plus moderne */
.sim-card.available{border-radius:14px}

/* Scrollbar discrète (navigateurs Webkit) */
::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:6px;border:3px solid var(--cream)}
::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}

/* ── LOT 3 : responsive mobile ── */
@media (max-width:760px){
  /* Grilles d'inputs des simulateurs : une seule colonne */
  .sim-main [style*="grid-template-columns:1fr 1fr"],
  .sim-main [style*="grid-template-columns: 1fr 1fr"]{grid-template-columns:1fr!important}
  /* Layout principal accueil : colonne marchés sous la grille */
  .home-sim-layout{grid-template-columns:1fr!important}
  /* KPIs à 4 colonnes → 2 colonnes sur mobile */
  .sim-main [style*="repeat(4,1fr)"],.sim-main [style*="repeat(4, 1fr)"]{grid-template-columns:1fr 1fr!important}
  /* Hero un peu plus compact */
  .sim-hero-title{font-size:1.4rem}
  h1{font-size:1.7rem}
  /* Boutons hero : pleine largeur pour le pouce */
  .sim-hero-inner button{flex:1;justify-content:center}
}
@media (max-width:440px){
  /* KPIs en pile sur très petits écrans */
  .sim-main [style*="repeat(4,1fr)"],.sim-main [style*="repeat(4, 1fr)"]{grid-template-columns:1fr!important}
  .pvi-kpis{grid-template-columns:1fr!important}
  body{font-size:13.5px}
}

/* ── LOT MOBILE CONSOLIDÉ (v6.218) ── */
@media (max-width:760px){
  /* Empêcher tout débordement horizontal de la page */
  html,body{max-width:100%;overflow-x:clip}
  .sim-main,.card,.sim-hero{max-width:100%}
  .sim-main{padding-left:0;padding-right:0}

  /* Champs ≥16px : empêche le zoom automatique iOS au focus */
  input,select,textarea{font-size:16px!important}

  /* Tableaux (comparatifs, rapports) : défilement horizontal au lieu de casser */
  .card-body{overflow-x:auto;-webkit-overflow-scrolling:touch}
  table{min-width:0}

  /* Zones tactiles plus généreuses */
  button,.sim-guide-toggle,a.nav-dd-item,label[style*="cursor:pointer"]{min-height:44px}
  input[type="checkbox"],input[type="radio"]{min-width:20px;min-height:20px}

  /* Cartes : pleine largeur, hauteur auto pour ne pas gâcher l'espace */
  .sim-card.available,.sim-card.soon{min-height:auto}

  /* Hero plus compact, padding réduit */
  .sim-hero{padding:18px 16px!important}
  .sim-hero-inner{padding:0!important}

  /* En-têtes de cartes et corps : padding réduit */
  .card-header{padding:.6rem .9rem}
  .card-body{padding:.9rem!important}

  /* Pagination simulateurs : boutons empilables */
  #sim-prev,#sim-next{padding:8px 14px;font-size:12px}
}

/* Pleine largeur des boutons d'action dans les simulateurs sur mobile */
@media (max-width:560px){
  .sim-hero-inner > div[style*="flex"] button{flex:1 1 auto;justify-content:center}
  /* Tableaux comparatifs : police légèrement réduite pour tenir */
  .rpt-table,#pvi-table,#av-table{font-size:11.5px}
}

/* ── Tutoriel guidé (PER) ── */
.tuto-launch{display:inline-flex;align-items:center;gap:8px;margin:12px 0 2px;padding:10px 16px;background:var(--red);color:#fff;border:none;border-radius:10px;font-weight:700;font-size:13px;cursor:pointer;transition:background .15s,transform .15s;font-family:inherit}
.tuto-launch:hover{background:var(--red-dark);transform:translateY(-1px)}
.tuto-dim{opacity:.18;filter:grayscale(.75);pointer-events:none;transition:opacity .35s,filter .35s}
.tuto-spot{position:relative;z-index:7;border-radius:12px;box-shadow:0 0 0 3px var(--red),0 0 0 9999px rgba(12,6,9,.70);transition:box-shadow .35s}
.tuto-callout{position:fixed;left:50%;transform:translateX(-50%);bottom:18px;width:min(560px,92vw);background:#fff;border:2px solid var(--red);border-radius:16px;padding:16px 18px 14px;box-shadow:0 16px 48px rgba(0,0,0,.28);z-index:10001;font-family:inherit;animation:tutoUp .3s ease}
@keyframes tutoUp{from{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translateX(-50%)}}
.tuto-callout-prog{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--red);margin-bottom:6px}
.tuto-callout-title{font-family:'Playfair Display',serif;font-size:18px;font-weight:700;color:var(--gray-800);margin:0 0 6px}
.tuto-callout-text{font-size:13.5px;line-height:1.55;color:var(--gray-700);margin:0 0 12px}
.tuto-callout-bar{display:flex;align-items:center;justify-content:space-between;gap:8px}
.tuto-callout-bar .tuto-nav{display:flex;gap:8px}
.tuto-btn{padding:8px 14px;border-radius:9px;font-weight:700;font-size:13px;cursor:pointer;border:none;font-family:inherit;transition:background .15s}
.tuto-btn-primary{background:var(--red);color:#fff}.tuto-btn-primary:hover{background:var(--red-dark)}
.tuto-btn-ghost{background:var(--gray-100);color:var(--gray-700)}.tuto-btn-ghost:hover{background:var(--gray-200)}
.tuto-btn-quit{background:transparent;color:var(--gray-500);text-decoration:underline;padding:8px 6px}
@media(max-width:600px){.tuto-callout{bottom:10px;padding:14px 14px 12px}.tuto-callout-title{font-size:16px}}



.rf-tranche-row{display:flex;justify-content:space-between;padding:3px 8px;border-radius:4px;margin:1px 0}
.rf-tranche-row.active{background:rgba(226,0,26,.07)}
/* Tableaux Micro/Réel côte à côte — hauteur de ligne uniforme */
#rf-tbl-micro td, #rf-tbl-micro th,
#rf-tbl-reel td, #rf-tbl-reel th { vertical-align:middle; }
#rf-tbl-micro tbody tr, #rf-tbl-reel tbody tr { height:36px; }
#rf-tbl-micro tfoot tr, #rf-tbl-reel tfoot tr { height:36px; }


.sci-dur-chip:hover{border-color:var(--red)!important;color:var(--red)!important;}


/* ═══ CSS GUIDES PATRIMONIAUX ═══ */

/* Layout */
.guide-wrap-center{max-width:1160px;margin:0 auto;display:grid;grid-template-columns:240px 1fr;min-height:100vh;box-shadow:0 0 0 1px var(--border)}
.guide-sidebar{position:sticky;top:64px;height:calc(100vh - 64px);background:#fff;border-right:1px solid var(--border);flex-shrink:0;display:flex;flex-direction:column}
.guide-sidebar-top{padding:1.1rem 1.25rem;border-bottom:1px solid var(--border);flex-shrink:0;background:#fff;position:sticky;top:0;z-index:5}
.guide-sidebar-inner{flex:1;overflow-y:auto;padding:1rem 1.25rem 2rem}
.guide-content{padding:3rem 4rem 6rem;max-width:820px;width:100%}

/* Navigation sidebar */
.guide-nav-link{display:block;padding:6px 10px;border-radius:7px;font-size:12.5px;font-weight:500;color:var(--gray-600);text-decoration:none;margin-bottom:2px;transition:all .15s;border-left:3px solid transparent}
.guide-nav-link:hover,.guide-nav-link.active{background:var(--red-light);color:var(--red-dark);font-weight:700;border-left-color:var(--red)}
.guide-back-btn{display:flex;align-items:center;gap:7px;background:none;border:none;color:var(--gray-500);cursor:pointer;font-family:inherit;font-size:12px;font-weight:600;margin-bottom:1.5rem;padding:0;transition:color .15s}
.guide-back-btn:hover{color:var(--red)}

/* CTA sidebar */
.guide-cta-box{margin-top:1.75rem;padding:1rem;background:var(--red-light);border-radius:12px;border:1px solid rgba(226,0,26,.15)}
.guide-cta-title{font-size:11px;font-weight:700;color:var(--red-dark);margin-bottom:.4rem}
.guide-cta-desc{font-size:11.5px;color:var(--gray-600);margin-bottom:.6rem;line-height:1.5}
.guide-cta-btn{width:100%;background:var(--red);color:white;border:none;border-radius:8px;padding:8px;font-family:inherit;font-size:12px;font-weight:600;cursor:pointer;margin-bottom:5px;transition:opacity .15s}
.guide-cta-btn:hover{opacity:.9}

/* Eyebrow & titres */
.guide-eyebrow{display:flex;align-items:center;gap:8px;margin-bottom:1rem;flex-wrap:wrap}
.guide-tag{font-size:11px;font-weight:700;color:var(--red);background:var(--red-light);border-radius:20px;padding:3px 10px;text-transform:uppercase;letter-spacing:.06em}
.guide-meta{font-size:11px;color:var(--gray-400)}
.guide-h1{font-family:'Playfair Display',serif;font-size:2.2rem;font-weight:700;color:var(--gray-800);line-height:1.2;margin:0 0 1.25rem}
.guide-intro{font-size:15px;color:var(--gray-500);line-height:1.8;margin-bottom:2.5rem;border-bottom:1px solid var(--border);padding-bottom:2rem}
.guide-h2{font-family:'Playfair Display',serif;font-size:1.55rem;font-weight:700;color:var(--gray-800);margin:0 0 1rem;line-height:1.3}
.guide-h3{font-size:1.05rem;font-weight:700;color:var(--gray-800);margin:1.5rem 0 .5rem}
.guide-p{font-size:14px;color:var(--gray-600);line-height:1.85;margin-bottom:1rem}
.guide-ul{padding-left:1.25rem;margin:.5rem 0 1rem;display:flex;flex-direction:column;gap:.5rem}
.guide-ul li{font-size:13.5px;color:var(--gray-600);line-height:1.7}

/* Sections */
.guide-section{margin-bottom:3rem;padding-bottom:3rem;border-bottom:1px solid var(--border)}
.guide-section:last-of-type{border-bottom:none;margin-bottom:0}
.guide-section-num{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--red);color:white;font-size:13px;font-weight:700;margin-bottom:.75rem}

/* Encarts colorés */
.enc-green{background:#E1F5EE;border:1px solid rgba(29,158,117,.2);border-left:4px solid #1D9E75;border-radius:10px;padding:1rem 1.25rem;margin:1.25rem 0}
.enc-green-t{font-size:10.5px;font-weight:700;color:#085041;text-transform:uppercase;letter-spacing:.1em;margin-bottom:.5rem}
.enc-blue{background:#E6F1FB;border:1px solid rgba(59,130,246,.2);border-left:4px solid #3b82f6;border-radius:10px;padding:1rem 1.25rem;margin:1.25rem 0}
.enc-blue-t{font-size:10.5px;font-weight:700;color:#1e40af;text-transform:uppercase;letter-spacing:.1em;margin-bottom:.5rem}
.enc-amber{background:#FFF8E6;border:1px solid rgba(245,200,66,.3);border-left:4px solid #E8A500;border-radius:10px;padding:1rem 1.25rem;margin:1.25rem 0}
.enc-amber-t{font-size:10.5px;font-weight:700;color:#7A5800;text-transform:uppercase;letter-spacing:.1em;margin-bottom:.5rem}
.enc-red{background:var(--red-light);border:1px solid rgba(226,0,26,.15);border-left:4px solid var(--red);border-radius:10px;padding:1rem 1.25rem;margin:1.25rem 0}
.enc-red-t{font-size:10.5px;font-weight:700;color:var(--red-dark);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.5rem}
.enc-gray{background:var(--gray-100);border:1px solid var(--border);border-left:4px solid var(--gray-500);border-radius:10px;padding:1rem 1.25rem;margin:1.25rem 0}
.enc-gray-t{font-size:10.5px;font-weight:700;color:var(--gray-700);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.5rem}

/* Tableaux */
.guide-table{width:100%;border-collapse:collapse;margin:1.25rem 0;font-size:13px}
.guide-table th{background:var(--gray-100);padding:.6rem .85rem;text-align:left;font-size:11px;font-weight:700;color:var(--gray-600);text-transform:uppercase;letter-spacing:.06em;border-bottom:2px solid var(--border)}
.guide-table td{padding:.6rem .85rem;border-bottom:1px solid var(--gray-100);color:var(--gray-700);line-height:1.5}
.guide-table tr:last-child td{border-bottom:none}
.guide-table tr:hover td{background:var(--gray-50,#fafafa)}

/* Cards */
.guide-cards-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1.25rem 0}
.guide-cards-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1.25rem 0}
.guide-card-item{background:white;border:1px solid var(--border);border-radius:12px;padding:1.1rem 1.25rem;box-shadow:0 1px 3px rgba(0,0,0,.05)}
.guide-card-title{font-size:13px;font-weight:700;color:var(--gray-800);margin-bottom:.4rem}
.guide-card-icon{font-size:22px;margin-bottom:.5rem}
.guide-card-desc{font-size:12.5px;color:var(--gray-500);line-height:1.55}

/* FAQ */
.guide-faq{display:flex;flex-direction:column;gap:.6rem}
.guide-faq-item{border:1px solid var(--border);border-radius:10px;overflow:hidden}
.guide-faq-q{font-size:13.5px;font-weight:700;color:var(--gray-800);padding:.9rem 1.1rem;cursor:pointer;background:var(--gray-50,#fafafa)}
.guide-faq-a{font-size:13px;color:var(--gray-600);line-height:1.7;padding:.75rem 1.1rem 1rem;border-top:1px solid var(--border)}

/* Sources */
.guide-sources-box{background:var(--gray-100);border-radius:12px;padding:1.25rem;margin-top:3rem}
.guide-sources-title{font-size:11px;font-weight:700;color:var(--gray-600);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.85rem;display:flex;align-items:center;gap:6px}
.guide-sources-list{display:flex;flex-direction:column;gap:.5rem}
.guide-sources-item{display:flex;align-items:flex-start;gap:.75rem;font-size:12.5px;color:var(--gray-600);line-height:1.6}
.guide-sources-ref{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--gray-400);color:white;font-size:10px;font-weight:700;flex-shrink:0;margin-top:2px}
.guide-sources-item a{color:var(--red);text-decoration:none}
.guide-sources-item a:hover{text-decoration:underline}
.guide-source-inline{font-size:10.5px;color:var(--red);border:1px solid rgba(226,0,26,.25);border-radius:4px;padding:1px 5px;text-decoration:none;white-space:nowrap;vertical-align:middle}
.guide-source-inline:hover{background:var(--red-light)}

/* Navigation bas */
.guide-nav-bottom{display:flex;align-items:center;justify-content:space-between;padding-top:2.5rem;margin-top:2.5rem;border-top:1px solid var(--border);gap:1rem}
.guide-btn-prev,.guide-btn-next{display:flex;align-items:center;gap:7px;background:white;border:1px solid var(--border);border-radius:10px;padding:10px 18px;font-family:inherit;font-size:13px;font-weight:600;color:var(--gray-700);cursor:pointer;transition:all .2s}
.guide-btn-prev:hover,.guide-btn-next:hover{border-color:var(--red);color:var(--red);background:var(--red-light)}
.guide-btn-next{margin-left:auto}

/* Responsive guide */
@media(max-width:768px){
  .guide-wrap-center{grid-template-columns:1fr}
  .guide-sidebar{display:none}
  .guide-content{padding:2rem 1.25rem 4rem}
  .guide-h1{font-size:1.7rem}
  .guide-cards-2,.guide-cards-3{grid-template-columns:1fr}
}


/* ── Bouton flottant ── */
#chat-btn{position:fixed;bottom:28px;right:28px;z-index:9000;width:58px;height:58px;border-radius:50%;background:linear-gradient(135deg,var(--red-darker),var(--red));border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px rgba(162,0,20,.35);transition:transform .2s,box-shadow .2s}
#chat-btn:hover{transform:scale(1.08);box-shadow:0 6px 28px rgba(162,0,20,.45)}
#chat-btn svg{width:26px;height:26px;fill:white;transition:opacity .2s}
#chat-btn .ico-close{display:none}
#chat-btn.open .ico-chat{display:none}
#chat-btn.open .ico-close{display:block}
#chat-notif{position:absolute;top:-3px;right:-3px;width:18px;height:18px;background:#22c55e;border-radius:50%;border:2px solid white;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:white}

/* ── Fenêtre chat ── */
#chat-window{position:fixed;bottom:100px;right:28px;z-index:8999;width:440px;max-width:calc(100vw - 40px);max-height:calc(100vh - 120px);background:var(--white);border-radius:18px;box-shadow:0 8px 48px rgba(0,0,0,.18);display:none;flex-direction:column;overflow:hidden;border:1px solid var(--gray-200)}
#chat-window.open{display:flex}

/* ── Header chat ── */
#chat-head{background:linear-gradient(135deg,var(--red-darker),var(--red));padding:14px 18px;display:flex;align-items:center;gap:12px;flex-shrink:0}
#chat-avatar{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;font-family:'Playfair Display',serif;font-size:15px;font-weight:700;color:white;flex-shrink:0}
#chat-head-info{flex:1}
#chat-head-name{font-size:14px;font-weight:600;color:white}
#chat-head-status{font-size:11px;color:rgba(255,255,255,.75);display:flex;align-items:center;gap:4px}
#chat-head-status::before{content:'';width:7px;height:7px;border-radius:50%;background:#22c55e;display:inline-block}

/* ── Messages ── */
#chat-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;max-height:380px;min-height:200px;background:var(--gray-100)}
.msg{max-width:88%;display:flex;flex-direction:column;gap:3px}
.msg.bot{align-self:flex-start}
.msg.user{align-self:flex-end}
.msg-bubble{padding:10px 14px;border-radius:14px;font-size:13px;line-height:1.55;word-break:break-word}
.msg.bot .msg-bubble{background:var(--white);color:var(--gray-800);border:1px solid var(--gray-200);border-bottom-left-radius:4px}
.msg.user .msg-bubble{background:linear-gradient(135deg,var(--red-darker),var(--red));color:white;border-bottom-right-radius:4px}
.msg-time{font-size:10px;color:var(--gray-300);padding:0 4px}
.msg.user .msg-time{text-align:right}
.typing-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--gray-300);animation:typing 1.2s infinite}
.typing-dot:nth-child(2){animation-delay:.2s}
.typing-dot:nth-child(3){animation-delay:.4s}
@keyframes typing{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-6px)}}

/* ── Suggestions rapides ── */
#chat-suggestions{padding:8px 12px;display:flex;gap:6px;flex-wrap:wrap;border-top:1px solid var(--gray-200);background:var(--white)}
.suggest-btn{padding:5px 11px;border:1px solid rgba(226,0,26,.25);border-radius:20px;background:var(--red-light);color:var(--red-dark);font-size:11.5px;cursor:pointer;font-family:inherit;font-weight:500;transition:all .15s;white-space:nowrap}
.suggest-btn:hover{background:var(--red);color:white}

/* ── Input ── */
#chat-input-zone{padding:12px 14px;border-top:1px solid var(--gray-200);display:flex;gap:8px;align-items:flex-end;background:var(--white);flex-shrink:0}
#chat-input{flex:1;border:1.5px solid var(--gray-200);border-radius:12px;padding:9px 13px;font-size:13px;font-family:inherit;color:var(--gray-800);background:var(--gray-100);resize:none;outline:none;max-height:100px;transition:border-color .15s;line-height:1.4}
#chat-input:focus{border-color:var(--red);background:white}
#chat-send{width:38px;height:38px;border-radius:50%;background:var(--red);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s}
#chat-send:hover{background:var(--red-dark)}
#chat-send svg{width:16px;height:16px;fill:white}
#chat-send:disabled{background:var(--gray-200);cursor:default}

/* ── Disclaimer ── */
#chat-disclaimer{font-size:10px;color:var(--gray-300);text-align:center;padding:6px 14px 10px;background:var(--white)}

@media(max-width:420px){#chat-window{width:calc(100vw - 20px);right:10px;bottom:90px}}


    #fan-btn{position:fixed;bottom:98px;right:28px;z-index:8998;width:58px;height:58px;border-radius:50%;background:linear-gradient(135deg,var(--red-darker),var(--red));border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px rgba(162,0,20,.35);transition:transform .2s,box-shadow .2s}
    #fan-btn:hover{transform:scale(1.08);box-shadow:0 6px 28px rgba(162,0,20,.45)}
    #fan-btn svg{width:26px;height:26px;fill:white;transition:transform .3s}
    #fan-btn.open svg{transform:rotate(45deg)}
    #fan-items{position:fixed;bottom:168px;right:28px;z-index:8997;display:flex;flex-direction:column;gap:8px;align-items:flex-end;pointer-events:none;opacity:0;transform:translateY(10px);transition:opacity .25s,transform .25s}
    #fan-items.open{pointer-events:auto;opacity:1;transform:translateY(0)}
    .fan-item{display:flex;align-items:center;gap:10px;padding:9px 14px;background:white;border:1px solid var(--gray-200);border-radius:50px;cursor:pointer;box-shadow:0 2px 12px rgba(0,0,0,.12);white-space:nowrap;font-family:inherit;font-size:12.5px;font-weight:600;color:var(--gray-800);transition:box-shadow .15s,transform .15s}
    .fan-item:hover{box-shadow:0 4px 18px rgba(0,0,0,.18);transform:translateX(-3px)}
    .fan-item-icon{width:28px;height:28px;border-radius:50%;background:var(--red-light);display:flex;align-items:center;justify-content:center;flex-shrink:0}
    /* Panels */
    .fan-panel{display:none;position:fixed;bottom:98px;right:96px;width:420px;max-height:82vh;overflow-y:auto;background:white;border-radius:16px;box-shadow:0 8px 40px rgba(0,0,0,.2);border:1px solid var(--gray-200);z-index:8996}
    .fan-panel-head{background:linear-gradient(135deg,var(--red-darker),var(--red));border-radius:16px 16px 0 0;padding:14px 18px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0}
    .fan-panel-head span{color:white;font-weight:700;font-size:14px}
    .fan-panel-close{background:none;border:none;color:white;cursor:pointer;font-size:22px;line-height:1;padding:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .15s}
    .fan-panel-close:hover{background:rgba(255,255,255,.2)}
    .fan-panel-body{padding:18px}
    .fan-table{width:100%;border-collapse:collapse;font-size:13px}
    .fan-table th{padding:9px 12px;text-align:left;font-weight:600;color:var(--gray-800);background:var(--gray-100);border-bottom:2px solid var(--gray-200)}
    .fan-table th:last-child{text-align:right}
    .fan-table td{padding:8px 12px;border-bottom:1px solid var(--gray-200);color:var(--gray-800)}
    .fan-table td:last-child{text-align:right;font-weight:700}
    .fan-table tr:nth-child(even){background:var(--gray-100)}
    .fan-note{margin-top:12px;padding:10px 12px;background:var(--gray-100);border-radius:8px;font-size:11px;color:var(--gray-500);line-height:1.5}
    
/* Variables du simulateur IR */
#page-ir{
  --navy:#1a2340;--teal:#1D9E75;--teal-bg:#edf7f3;
  --orange:#e07b00;--blue:#378ADD;
  --red-bg:#fdf0f2;--red-dark:#b8001a;
  --g50:#f9f8f7;--g100:#f0eeec;--g200:#e2dedd;
  --g300:#c8c2bf;--g400:#a09a97;--g600:#6b6461;--g800:#2d2a29;
  --r:12px;--rs:8px;--sh:0 2px 12px rgba(0,0,0,.07);
}






/* ── LAYOUT ── */
.ir-sim-main{max-width:100%;padding:24px 0 40px;display:grid;grid-template-columns:1fr 370px;gap:22px;align-items:start;}

/* ── ACCORDÉON ── */
.acc{background:#fff;border-radius:var(--r);box-shadow:var(--sh);margin-bottom:12px;overflow:hidden;}
#page-ir .acc-head{display:flex;align-items:center;gap:12px;padding:15px 18px;cursor:pointer;user-select:none;border-bottom:1px solid transparent;transition:background .15s;}
#page-ir .acc-head:hover{background:var(--g50);}
#page-ir .acc-head.open{border-bottom-color:var(--g100);}
#page-ir .acc-ico{width:32px;height:32px;border-radius:8px;background:var(--red-bg);color:var(--red);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;}
#page-ir .acc-lbl{flex:1;}
#page-ir .acc-title{font-weight:700;font-size:13px;color:var(--g800);line-height:1.2;}
#page-ir .acc-sub{font-size:11px;color:var(--g400);margin-top:1px;}
#page-ir .acc-arr{color:var(--g300);font-size:18px;transition:transform .25s;line-height:1;}
#page-ir .acc-head.open .acc-arr{transform:rotate(180deg);}
#page-ir .acc-body{display:none;padding:20px 18px;}
#page-ir .acc-body.open{display:block;}

/* ── DÉCLARANTS ── */
.declarants{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px;}
#page-ir .decl-btn{display:flex;align-items:center;gap:8px;padding:10px 14px;border:1.5px solid var(--g200);border-radius:var(--rs);cursor:pointer;transition:all .15s;background:#fff;font-family:inherit;font-size:13px;color:var(--g600);}
#page-ir .decl-btn.active{border-color:var(--red);background:var(--red-bg);color:var(--red);}
#page-ir .decl-btn .dico{font-size:20px;}
#page-ir .decl-btn .dname{font-weight:700;font-size:12px;line-height:1.2;}
#page-ir .decl-btn .dstatus{font-size:10.5px;color:var(--g400);}
#page-ir .decl-btn.active .dstatus{color:rgba(226,0,26,.6);}
#page-ir .decl-add{border-style:dashed;color:var(--g400);}
#page-ir .decl-add:hover{border-color:var(--red);color:var(--red);}

/* ── DÉCLARANT PANEL ── */
.decl-panel{background:var(--g50);border-radius:var(--rs);padding:16px;margin-bottom:14px;border:1px solid var(--g100);}
#page-ir .decl-panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
#page-ir .decl-panel-name{font-weight:700;font-size:13px;color:var(--g800);display:flex;align-items:center;gap:8px;}
#page-ir .decl-remove{background:none;border:none;cursor:pointer;color:var(--g300);font-size:18px;padding:2px;line-height:1;}
#page-ir .decl-remove:hover{color:var(--red);}

/* ── CHAMPS ── */
.field{margin-bottom:13px;}
#page-ir .field:last-child{margin-bottom:0;}
#page-ir label{display:block;font-size:11.5px;font-weight:600;color:var(--g600);margin-bottom:5px;letter-spacing:.1px;}
#page-ir .r2{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
#page-ir .r3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;}
#page-ir .r3 .field,#page-ir .r2 .field{display:grid;grid-template-rows:2.6em auto auto;gap:0;}
#page-ir .r3 .field label,#page-ir .r2 .field label{display:flex;align-items:flex-end;margin-bottom:5px;line-height:1.2;font-size:11px;}
#page-ir .r3 .field .iw,#page-ir .r2 .field .iw{align-self:start;}
#page-ir .r3 .field .s-hint,#page-ir .r2 .field .s-hint{align-self:start;}
#page-ir .iw{position:relative;}
#page-ir .iw input,
#page-ir .iw select{width:100%;padding:9px 10px;border:1.5px solid var(--g200);border-radius:var(--rs);font-family:inherit;font-size:13px;color:var(--g800);background:#fff;transition:border-color .15s;-webkit-appearance:none;appearance:none;}
#page-ir .iw.unit-r input{padding-right:36px;}
#page-ir .iw input:focus,
#page-ir .iw select:focus{outline:none;border-color:var(--red);}
#page-ir .u{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:12px;color:var(--g400);pointer-events:none;}
#page-ir .sel{padding-right:10px!important;}

/* ── SLIDER ── */
.sf{margin-bottom:13px;}
#page-ir .sh{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px;}
#page-ir .sh label{margin:0;}
#page-ir .sv{font-size:13px;font-weight:700;color:var(--g800);}
#page-ir input[type=range]{width:100%;height:4px;border-radius:2px;background:var(--g200);cursor:pointer;accent-color:var(--red);border:none;padding:0;display:block;}

/* ── CHECKBOX ROW ── */
.cb-row{display:flex;align-items:center;gap:8px;padding:8px 10px;background:#fff;border:1.5px solid var(--g200);border-radius:var(--rs);cursor:pointer;transition:all .15s;margin-bottom:8px;}
#page-ir .cb-row:hover{border-color:var(--red);}
#page-ir .cb-row.on{border-color:var(--red);background:var(--red-bg);}
#page-ir .cb-row input[type=checkbox]{accent-color:var(--red);width:15px;height:15px;flex-shrink:0;cursor:pointer;}
#page-ir .cb-lbl{flex:1;font-size:12.5px;color:var(--g800);}
#page-ir .cb-amt{font-size:12px;font-weight:700;color:var(--teal);}

/* ── RADIO PILLS ── */
.rpills{display:flex;gap:6px;flex-wrap:wrap;}
#page-ir .rpill{padding:6px 14px;border-radius:20px;border:1.5px solid var(--g200);cursor:pointer;font-size:12px;font-weight:600;color:var(--g600);background:#fff;font-family:inherit;transition:all .15s;}
#page-ir .rpill.on{background:var(--red);border-color:var(--red);color:#fff;}

/* ── SECTION TITRE ── */
.stitle{font-size:11px;font-weight:700;color:var(--g400);text-transform:uppercase;letter-spacing:.7px;display:flex;align-items:center;gap:8px;margin:16px 0 10px;}
#page-ir .stitle::after{content:'';flex:1;height:1px;background:var(--g100);}
#page-ir .stitle:first-child{margin-top:0;}

/* ── HINT ── */
.hint{background:#fffbf0;border:1px solid #f0e0b0;border-radius:var(--rs);padding:9px 12px;font-size:11.5px;color:#7a5800;display:flex;gap:8px;align-items:flex-start;margin-bottom:13px;}

/* ── PARTS PILL ── */
.ppill{display:inline-flex;align-items:center;gap:7px;background:var(--red-bg);border:1px solid rgba(226,0,26,.2);border-radius:20px;padding:6px 14px;font-size:13px;color:var(--red);font-weight:700;}

/* ── TOGGLE PROJECTION ── */
.ptog{display:flex;align-items:center;gap:14px;padding:14px 18px;background:linear-gradient(135deg,#fff8f9,#fff);border:1.5px solid rgba(226,0,26,.2);border-radius:var(--r);cursor:pointer;margin-bottom:12px;transition:all .2s;}
#page-ir .ptog:hover{border-color:var(--red);background:var(--red-bg);}
#page-ir .sw{width:40px;height:22px;border-radius:11px;background:var(--g200);position:relative;transition:background .2s;flex-shrink:0;}
#page-ir .sw.on{background:var(--red);}
#page-ir .sw::after{content:'';position:absolute;width:18px;height:18px;border-radius:50%;background:#fff;top:2px;left:2px;transition:transform .2s;box-shadow:0 1px 4px rgba(0,0,0,.2);}
#page-ir .sw.on::after{transform:translateX(18px);}

/* ── ÉVÉNEMENTS ── */
.evgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px;}
#page-ir .ev{border:1.5px solid var(--g200);border-radius:var(--rs);padding:10px 12px;cursor:pointer;transition:all .15s;display:flex;align-items:center;gap:9px;}
#page-ir .ev:hover{border-color:var(--red);}
#page-ir .ev.on{border-color:var(--red);background:var(--red-bg);}
#page-ir .evlbl{font-size:12px;font-weight:700;color:var(--g800);}
#page-ir .evsub{font-size:10.5px;color:var(--g400);}
#page-ir .ep{display:none;margin-top:10px;padding:14px;background:var(--g50);border-radius:var(--rs);border:1px solid var(--g100);}
#page-ir .ep.on{display:block;animation:fi .25s ease;}

/* ── RÉSULTATS droite ── */
.sticky{position:sticky;top:22px;}
#page-ir .irhero{background:linear-gradient(135deg,var(--red-dark),var(--red));border-radius:var(--r);padding:24px 22px 20px;margin-bottom:14px;text-align:center;position:relative;overflow:hidden;}
#page-ir .irhero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 75% 15%,rgba(226,0,26,.3),transparent 55%);}
#page-ir .ihl{position:relative;color:rgba(255,255,255,.55);font-size:10.5px;font-weight:700;letter-spacing:1px;text-transform:uppercase;margin-bottom:5px;}
#page-ir .iha{position:relative;font-family:'Playfair Display',serif;font-size:44px;font-weight:700;color:#fff;line-height:1;}
#page-ir .ihs{position:relative;color:rgba(255,255,255,.4);font-size:11.5px;margin-top:7px;}
#page-ir .ihp{position:relative;display:inline-block;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);border-radius:20px;padding:3px 12px;font-size:11px;color:rgba(255,255,255,.7);margin-top:9px;}
#page-ir .kpis{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;}
#page-ir .kpi{background:#fff;border-radius:var(--rs);padding:11px 14px;box-shadow:var(--sh);text-align:center;}
#page-ir .kl{font-size:10.5px;color:var(--g400);font-weight:600;margin-bottom:2px;text-transform:uppercase;letter-spacing:.3px;}
#page-ir .kv{font-size:19px;font-weight:700;color:var(--g800);}
#page-ir .kv.red{color:var(--red);}
#page-ir .kv.teal{color:var(--teal);}
#page-ir .kv.org{color:var(--orange);}
#page-ir .kv.blu{color:var(--blue);}

/* ── BARÈME TABLE ── */
.bcard{background:#fff;border-radius:var(--r);box-shadow:var(--sh);padding:16px;margin-bottom:14px;}
#page-ir .btitle{font-size:10.5px;font-weight:700;color:var(--g400);text-transform:uppercase;letter-spacing:.7px;margin-bottom:14px;}
#page-ir table.btable{width:100%;border-collapse:collapse;}
#page-ir .btable th{font-size:10px;font-weight:700;color:var(--g400);text-transform:uppercase;letter-spacing:.5px;padding:0 6px 8px;text-align:left;}
#page-ir .btable th:last-child{text-align:right;}
#page-ir .btable td{padding:7px 6px;font-size:12px;border-top:1px solid var(--g100);}
#page-ir .btable tr:first-child td{border-top:none;}
#page-ir .btable td:last-child{text-align:right;font-weight:700;}
#page-ir .tr-bar-wrap{width:70px;height:6px;background:var(--g100);border-radius:3px;overflow:hidden;display:inline-block;vertical-align:middle;margin-right:4px;}
#page-ir .tr-bar-fill{height:100%;border-radius:3px;transition:width .5s ease;}
#page-ir .tmi-pill{background:var(--red);color:#fff;font-size:9px;font-weight:700;padding:1px 6px;border-radius:10px;margin-left:4px;vertical-align:middle;}

/* ── COMPARATIF ── */
.ccard{background:#fff;border-radius:var(--r);box-shadow:var(--sh);padding:16px;margin-bottom:14px;display:none;}
#page-ir .ctitle{font-size:10.5px;font-weight:700;color:var(--g400);text-transform:uppercase;letter-spacing:.7px;margin-bottom:12px;}
#page-ir .crow{display:grid;grid-template-columns:1fr 80px 80px 60px;gap:6px;align-items:center;padding:8px 0;border-top:1px solid var(--g100);font-size:12px;}
#page-ir .crow:first-child{border-top:none;}
#page-ir .cl{color:var(--g600);}
#page-ir .ca{font-weight:600;text-align:right;}
#page-ir .cp{font-weight:700;text-align:right;}
#page-ir .cp.b{color:var(--teal);}
#page-ir .cp.w{color:var(--red);}
#page-ir .cd{font-size:10.5px;font-weight:700;padding:2px 6px;border-radius:10px;text-align:center;}
#page-ir .cd.b{background:var(--teal-bg);color:var(--teal);}
#page-ir .cd.w{background:var(--red-bg);color:var(--red);}
#page-ir .cd.eq{background:var(--g100);color:var(--g400);}

/* ── OPTIM ── */
.ocard{background:linear-gradient(135deg,#edf7f3,#e0f4ec);border:1.5px solid var(--teal);border-radius:var(--r);padding:16px;margin-bottom:14px;}
#page-ir .otitle{font-size:10.5px;font-weight:700;color:var(--teal);text-transform:uppercase;letter-spacing:.7px;margin-bottom:12px;}
#page-ir .oi{display:flex;align-items:flex-start;gap:9px;margin-bottom:10px;}
#page-ir .oi:last-child{margin-bottom:0;}
#page-ir .on_{width:20px;height:20px;border-radius:50%;background:var(--teal);color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px;}
#page-ir .ot{color:var(--g800);font-size:12.5px;line-height:1.5;}
#page-ir .og{font-weight:700;color:var(--teal);}
#page-ir .olink{color:var(--red);font-weight:700;text-decoration:none;border-bottom:1px dotted var(--red);font-size:12px;}
#page-ir .note{text-align:center;font-size:11px;color:var(--g400);padding:10px 0 0;border-top:1px solid var(--g100);margin-top:12px;line-height:1.6;}

@keyframes fi{from{opacity:0;transform:translateY(5px);}
#page-ir to{opacity:1;transform:translateY(0);}
#page-ir }
#psec{display:none;}
#page-ir #psec.on{display:block;animation:fi .3s ease;}
#page-ir .sep{height:1px;background:var(--g100);margin:14px 0;}

/* ── MODE SWITCH ── */
.mode-bar{display:flex;align-items:center;background:var(--red-dark);border-bottom:2px solid rgba(255,255,255,.15);margin-bottom:0;}
#page-ir .mode-btn{padding:14px 24px;font-family:inherit;font-size:13px;font-weight:600;color:rgba(255,255,255,.5);background:none;border:none;cursor:pointer;border-bottom:3px solid transparent;transition:all .2s;display:flex;align-items:center;gap:8px;}
#page-ir .mode-btn.active{color:#fff;border-bottom-color:var(--red);}
#page-ir .mode-btn svg{opacity:.6;transition:opacity .2s;}
#page-ir .mode-btn.active svg{opacity:1;}

/* ── MODE SIMPLE ── */
#mode-simple{display:block;}
#page-ir #mode-expert{display:none;}
#page-ir #mode-simple.hidden{display:none;}
#page-ir #mode-expert.visible{display:block;}
#page-ir .simple-wrap{max-width:1100px;margin:0 auto;padding:24px 0 80px;}
#page-ir .simple-card{background:#fff;border-radius:var(--r);box-shadow:var(--sh);overflow:hidden;margin-bottom:0;display:flex;flex-direction:column;}
#page-ir .simple-head{padding:14px 20px;background:linear-gradient(135deg,var(--red-dark),var(--red));display:flex;align-items:center;gap:10px;}
#page-ir .simple-head-icon{font-size:18px;}
#page-ir .simple-head-title{color:#fff;font-weight:700;font-size:14px;}
#page-ir .simple-body{padding:22px 20px;flex:1;}

/* Résultat simple */
.simple-result{background:linear-gradient(135deg,var(--red-dark),var(--red));border-radius:var(--r);padding:28px 24px;margin-bottom:14px;text-align:center;position:relative;overflow:hidden;}
#page-ir .simple-result::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 75% 20%,rgba(226,0,26,.3),transparent 55%);}
#page-ir .sr-label{position:relative;color:rgba(255,255,255,.55);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;margin-bottom:6px;}
#page-ir .sr-amount{position:relative;font-family:'Playfair Display',serif;font-size:52px;font-weight:700;color:#fff;line-height:1;}
#page-ir .sr-sub{position:relative;color:rgba(255,255,255,.45);font-size:12px;margin-top:8px;}
#page-ir .sr-kpis{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px;}
#page-ir .sr-kpi{background:rgba(255,255,255,.08);border-radius:8px;padding:10px;text-align:center;}
#page-ir .sr-kpi-l{color:rgba(255,255,255,.5);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;margin-bottom:3px;}
#page-ir .sr-kpi-v{color:#fff;font-size:16px;font-weight:700;}

/* Tranches simples */
.br-simple{background:#fff;border-radius:var(--r);box-shadow:var(--sh);padding:18px 20px;margin-bottom:14px;}
#page-ir .br-simple-title{font-size:11px;font-weight:700;color:var(--g400);text-transform:uppercase;letter-spacing:.7px;margin-bottom:14px;}

/* champ montant grand */
.big-input{display:flex;align-items:center;gap:0;}
#page-ir .big-input input{flex:1;padding:13px 16px;border:2px solid var(--g200);border-radius:var(--rs) 0 0 var(--rs);font-family:inherit;font-size:18px;font-weight:600;color:var(--g800);background:#fff;transition:border-color .15s;}
#page-ir .big-input input:focus{outline:none;border-color:var(--red);}
#page-ir .big-input-unit{padding:13px 16px;background:var(--g50);border:2px solid var(--g200);border-left:none;border-radius:0 var(--rs) var(--rs) 0;font-size:16px;font-weight:700;color:var(--g400);}

/* Hint simple */
.s-hint{font-size:11px;color:var(--g400);margin-top:6px;display:flex;align-items:center;gap:5px;}

  
'+RCSS+'
'+pgCss+'
'+RCSS+'