.focs-sim {
--focs-bleu: #023170;
--focs-bleu-80: #355A8D;
--focs-bleu-60: #6782AA;
--focs-bleu-40: #9AABC7;
--focs-bleu-20: #CCD4E3;
--focs-bleu-10: #E6EAF1;
--focs-blanc: #FFFFFF;
font-family: 'Montserrat', system-ui, -apple-system, sans-serif !important;
font-weight: 400 !important;
color: var(--focs-bleu) !important;
background: var(--focs-blanc) !important;
font-size: 0.875rem !important;
line-height: 1.65 !important;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-rendering: optimizeLegibility;
padding: 0 !important;
margin: 0 !important;
box-sizing: border-box !important;
}
.focs-sim > * {
margin-left: 0 !important;
margin-right: 0 !important;
padding-left: 0 !important;
padding-right: 0 !important;
}
.focs-sim strong, .focs-sim b, .focs-sim small, .focs-sim span, .focs-sim td, .focs-sim th, .focs-sim p, .focs-sim li, .focs-sim label, .focs-sim div { color: var(--focs-bleu) !important; }
.focs-sim *, .focs-sim *::before, .focs-sim *::after {
color: var(--focs-bleu) !important;
box-sizing: border-box !important;
letter-spacing: normal !important;
}
.focs-sim .focs-slbl {
font-size: 11px !important;
font-weight: 600 !important;
text-transform: uppercase !important;
color: var(--focs-bleu) !important;
margin: 40px 0 18px !important;
padding-top: 0 !important;
border-top: none !important;
font-family: 'Montserrat', sans-serif !important;
}
.focs-sim .focs-r2 {
display: grid !important;
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)) !important;
gap: 24px !important;
margin-bottom: 20px !important;
}
.focs-sim .focs-f {
display: flex !important;
flex-direction: column !important;
gap: 6px !important;
}
.focs-sim .focs-f label {
font-size: 10.5px !important;
font-weight: 600 !important;
color: var(--focs-bleu) !important;
text-transform: uppercase !important;
font-family: 'Montserrat', sans-serif !important;
}
.focs-sim .focs-f input, .focs-sim .focs-f select {
font-size: 13.5px !important;
font-family: 'Montserrat', sans-serif !important;
padding: 9px 0 !important;
border: 0 !important;
border-bottom: 1px solid var(--focs-bleu) !important;
background: transparent !important;
color: var(--focs-bleu) !important;
outline: none !important;
-webkit-appearance: none !important;
appearance: none !important;
transition: border-color 0.2s ease !important;
width: 100% !important;
}
.focs-sim .focs-f input:focus, .focs-sim .focs-f select:focus {
border-bottom-color: var(--focs-bleu) !important;
}
.focs-sim .focs-f select {
padding-right: 24px !important;
cursor: pointer !important;
}
.focs-sim .focs-ck {
display: flex !important;
align-items: flex-start !important;
gap: 12px !important;
padding: 6px 0 !important;
background: transparent !important;
border: none !important;
font-size: 13px !important;
color: var(--focs-bleu) !important;
margin-bottom: 4px !important;
cursor: pointer !important;
font-family: 'Montserrat', sans-serif !important;
}
.focs-sim .focs-ck:hover {
background: transparent !important;
}
.focs-sim .focs-ck input[type="checkbox"] {
appearance: none !important;
-webkit-appearance: none !important;
width: 16px !important;
height: 16px !important;
border: 1px solid var(--focs-bleu) !important;
background: var(--focs-blanc) !important;
cursor: pointer !important;
flex-shrink: 0 !important;
margin-top: 2px !important;
transition: all 0.15s ease !important;
position: relative !important;
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
}
.focs-sim .focs-ck input[type="checkbox"]:checked {
background: var(--focs-bleu) !important;
border-color: var(--focs-bleu) !important;
}
.focs-sim .focs-ck input[type="checkbox"]:checked::after {
content: "\eb7b";
font-family: 'remixicon' !important;
font-style: normal !important;
font-weight: normal !important;
color: var(--focs-blanc) !important;
font-size: 14px !important;
line-height: 1 !important;
position: absolute !important;
top: 50% !important;
left: 50% !important;
transform: translate(-50%, -50%) !important;
}
.focs-sim .focs-ck-d {
font-size: 11px !important;
color: var(--focs-bleu) !important;
margin-top: 5px !important;
line-height: 1.5 !important;
font-family: 'Montserrat', sans-serif !important;
}
.focs-sim .focs-f-d {
font-size: 11px !important;
color: var(--focs-bleu) !important;
line-height: 1.5 !important;
font-family: 'Montserrat', sans-serif !important;
margin-top: -2px !important;
margin-bottom: 4px !important;
font-weight: 400 !important;
}
.focs-sim .focs-btn {
width: 100% !important;
padding: 16px 20px !important;
font-size: 11.5px !important;
font-weight: 600 !important;
text-transform: uppercase !important;
background: var(--focs-bleu) !important;
color: var(--focs-blanc) !important;
border: none !important;
border-radius: 0 !important;
cursor: pointer !important;
margin-top: 36px !important;
transition: opacity 0.2s ease !important;
font-family: 'Montserrat', sans-serif !important;
}
.focs-sim .focs-btn:hover {
opacity: 0.85 !important;
}
.focs-sim .focs-res {
margin-top: 56px !important;
}
.focs-sim .focs-kg {
display: grid !important;
grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)) !important;
gap: 32px !important;
margin-bottom: 48px !important;
}
.focs-sim .focs-kc {
background: var(--focs-blanc) !important;
border: none !important;
padding: 4px 0 8px !important;
}
.focs-sim .focs-kl {
font-size: 10.5px !important;
font-weight: 600 !important;
text-transform: uppercase !important;
color: var(--focs-bleu) !important;
margin-bottom: 10px !important;
font-family: 'Montserrat', sans-serif !important;
}
.focs-sim .focs-kv {
font-family: 'Abhaya Libre', serif !important;
font-size: 26px !important;
font-weight: 400 !important;
color: var(--focs-bleu) !important;
line-height: 1.1 !important;
}
.focs-sim .focs-ks {
font-size: 11px !important;
color: var(--focs-bleu) !important;
margin-top: 6px !important;
font-family: 'Montserrat', sans-serif !important;
}
.focs-sim .focs-cd {
background: var(--focs-blanc) !important;
border: none !important;
padding: 8px 0 8px !important;
margin-bottom: 40px !important;
}
.focs-sim .focs-ct {
font-size: 12px !important;
font-weight: 600 !important;
text-transform: uppercase !important;
color: var(--focs-bleu) !important;
margin-bottom: 18px !important;
font-family: 'Montserrat', sans-serif !important;
}
.focs-sim .focs-ri {
display: flex !important;
justify-content: space-between !important;
align-items: baseline !important;
padding: 9px 0 !important;
border-bottom: 1px solid var(--focs-bleu) !important;
font-size: 13px !important;
gap: 12px !important;
font-family: 'Montserrat', sans-serif !important;
}
.focs-sim .focs-ri:last-child {
border-bottom: none !important;
}
.focs-sim .focs-rl {
color: var(--focs-bleu) !important;
flex: 1 !important;
font-family: 'Montserrat', sans-serif !important;
}
.focs-sim .focs-rv {
font-weight: 500 !important;
color: var(--focs-bleu) !important;
white-space: nowrap !important;
font-family: 'Montserrat', sans-serif !important;
}
.focs-sim .focs-al {
border: none !important;
padding: 6px 0 !important;
font-size: 12px !important;
line-height: 1.65 !important;
margin: 12px 0 16px !important;
background: var(--focs-blanc) !important;
color: var(--focs-bleu) !important;
font-family: 'Montserrat', sans-serif !important;
font-style: italic !important;
}
.focs-sim .focs-ot {
width: 100% !important;
border-collapse: collapse !important;
font-size: 12.5px !important;
margin-top: 16px !important;
font-family: 'Montserrat', sans-serif !important;
}
.focs-sim .focs-ot th {
font-size: 10.5px !important;
font-weight: 600 !important;
text-transform: uppercase !important;
color: var(--focs-bleu) !important;
padding: 12px 12px !important;
background: var(--focs-blanc) !important;
text-align: left !important;
border-bottom: 1px solid var(--focs-bleu) !important;
}
.focs-sim .focs-ot td {
padding: 11px 12px !important;
border-bottom: 1px solid var(--focs-bleu) !important;
vertical-align: middle !important;
}
.focs-sim .focs-ot tr:last-child td {
border-bottom: none !important;
}
.focs-sim .focs-ot .focs-best td {
background: var(--focs-blanc) !important;
font-weight: 600 !important;
color: var(--focs-bleu) !important;
border-bottom: 1px solid var(--focs-bleu) !important;
}
.focs-sim .focs-lbo2 {
display: grid !important;
grid-template-columns: 1fr 1fr !important;
gap: 20px !important;
margin: 20px 0 !important;
}
.focs-sim .focs-lbc {
background: var(--focs-blanc) !important;
border: none !important;
padding: 4px 0 8px !important;
}
.focs-sim .focs-lbh {
font-size: 11.5px !important;
font-weight: 600 !important;
text-transform: uppercase !important;
color: var(--focs-bleu) !important;
margin-bottom: 14px !important;
font-family: 'Montserrat', sans-serif !important;
}
.focs-sim .focs-tpsch {
display: flex !important;
flex-direction: column !important;
align-items: center !important;
gap: 10px !important;
padding: 16px 0 8px !important;
}
.focs-sim .focs-tpsn {
border: 1px solid var(--focs-bleu) !important;
padding: 14px 22px !important;
min-width: 260px !important;
text-align: left !important;
background: var(--focs-blanc) !important;
font-family: 'Montserrat', sans-serif !important;
}
.focs-sim .focs-tpsn-main {
background: var(--focs-bleu) !important;
border-color: var(--focs-bleu) !important;
}
.focs-sim .focs-tpsn-main .focs-tpsnl,
.focs-sim .focs-tpsn-main .focs-tpsnn,
.focs-sim .focs-tpsn-main .focs-tpsnd {
color: var(--focs-blanc) !important;
}
.focs-sim .focs-tpsnl {
font-size: 10px !important;
text-transform: uppercase !important;
color: var(--focs-bleu-60) !important;
margin-bottom: 6px !important;
font-weight: 600 !important;
}
.focs-sim .focs-tpsnn {
font-family: 'Abhaya Libre', serif !important;
font-size: 19px !important;
color: var(--focs-bleu) !important;
line-height: 1.1 !important;
margin-bottom: 4px !important;
}
.focs-sim .focs-tpsnd {
font-size: 11.5px !important;
color: var(--focs-bleu-80) !important;
line-height: 1.5 !important;
}
@media (max-width: 1024px) {
.focs-sim .focs-r2 {
grid-template-columns: 1fr !important;
}
.focs-sim .focs-kg {
grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important;
}
}
@media (max-width: 768px) {
.focs-sim .focs-kg {
grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important;
}
.focs-sim .focs-lbo2 {
grid-template-columns: 1fr !important;
}
}
Composition du patrimoine du défunt
Actif immobilier (€) Résidence principale, locatifs, terrains, parts de SCI
Actif financier (€) Comptes, livrets, PEA, comptes-titres, liquidités
Parts de sociétés (€) Titres de sociétés opérationnelles ou patrimoniales détenus en direct
Passif successoral (€) Emprunts, dettes, frais funéraires déductibles de l'actif brut
Assurance-vie - hors succession
Primes versées avant 70 ans (€) Capitaux relevant de l'art. 990 I CGI - abattement 152 500 € par bénéficiaire
Primes versées après 70 ans (€) Capitaux relevant de l'art. 757 B CGI - abattement global 30 500 €
Nombre de bénéficiaires d'assurance-vie Répartition de l'abattement de 152 500 € par bénéficiaire désigné
Donations antérieures par enfant (€) Donations reçues dans les 15 ans qui réduisent l'abattement de 100 000 €
Configuration familiale et matrimoniale
Régime matrimonial En communauté, seule la moitié des biens communs entre dans la succession
Communauté légale - réduite aux acquêtsSéparation de biensParticipation aux acquêts
Nombre d'enfants héritiers Héritiers en ligne directe - abattement de 100 000 € chacun (art. 779 CGI)
Conjoint survivant héritier Le conjoint survivant est totalement exonéré de droits (art. 796-0 bis CGI)
Oui - conjoint recueille 1/4 en pleine propriétéNon - les enfants recueillent la totalité
Hypothèse retenue : dévolution légale, conjoint optant pour le quart en pleine propriété lorsqu'il est héritier.
Simuler les droits de succession
L'affichage du calendrier nécessite votre consentement préalable pour l'activation des cookies liés à Calendly.
Modifier ce paramètre (function(){
const root = document.querySelector('.focs-suc');
const $ = id => root.querySelector('#'+id);
const v = id => parseFloat($(id).value.replace(/[^0-9,-]/g,'').replace(',','.'))||0;
const vb = id => $(id).checked;
const vs = id => $(id).value;
const fmt = n => Math.round(n).toLocaleString('fr-FR')+' €';
const pct2 = n => (n*100).toFixed(2).replace('.',',')+' %';
const pct1 = n => (n*100).toFixed(1).replace('.',',')+' %';
const pct0 = n => Math.round(n*100)+' %';
const CAL_SLUG = '/d/ctrz-9cg-sfd/rendez-vous-decouverte';function formatFrenchNumber(el){
const raw = String(el.value).replace(/[^0-9,.-]/g,'').replace(',','.');
const n = parseFloat(raw);
if(isNaN(n)||raw===''){el.value='';return;}
el.value = Math.round(n).toLocaleString('fr-FR');
}
function unformatFrenchNumber(el){
el.value = String(el.value).replace(/\s/g,'').replace(/[^\d,.-]/g,'').replace(',','.');
}
root.querySelectorAll('.focs-num').forEach(el => {
formatFrenchNumber(el);
el.addEventListener('focus', function(){ unformatFrenchNumber(this); });
el.addEventListener('blur', function(){ formatFrenchNumber(this); });
});
function buildHtml(id,html){
const el=$(id);
el.style.display='block';
el.innerHTML=html;
}function droitsLD(a){
const T=[[8072,0.05],[12109,0.10],[15932,0.15],[552324,0.20],[902838,0.30],[1805677,0.40],[Infinity,0.45]];
let p=0,d=0;
for(const t of T){ if(a>p){ d+=(Math.min(a,t[0])-p)*t[1]; p=t[0]; } else break; }
return d;
}function taxeAvAvant70(total, nbBenef){
if(nbBenef<=0) return 0;
const parBenef = total/nbBenef;
const base = Math.max(0, parBenef-152500);
let taxe;
if(base=1 && conj){ qpEnfants=0.75; qpConjoint=0.25; }
else if(nbEnf>=1){ qpEnfants=1; qpConjoint=0; }
else { qpEnfants=0; qpConjoint=conj?1:0; }const masseEnfants = Math.max(0, actifNet*qpEnfants);
const masseConjoint = Math.max(0, actifNet*qpConjoint);
const partParEnfant = nbEnf>=1 ? masseEnfants/nbEnf : 0;const abattementEnfant = Math.max(0, 100000-don);
const assietteEnfant = Math.max(0, partParEnfant-abattementEnfant);
const droitsParEnfant = droitsLD(assietteEnfant);
const droitsEnfantsTotal = droitsParEnfant*nbEnf;const parBenef990 = av70a/nbBenef;
const base990 = Math.max(0, parBenef990-152500);
const taxe990 = taxeAvAvant70(av70a, nbBenef);const assiette757 = Math.max(0, av70b-30500);
const droits757 = droitsLD(assiette757);const taxeAvTotal = taxe990+droits757;
const avTotal = av70a+av70b;
const denomGlobal = actifNet+avTotal;
const tauxEffGlobal = denomGlobal>0 ? (droitsEnfantsTotal+taxeAvTotal)/denomGlobal : 0;
const droitsTotal = droitsEnfantsTotal+taxeAvTotal;const donVivant = 100000;
const actifNetOpt = Math.max(0, actifNet - donVivant*nbEnf);
const masseEnfantsOpt = Math.max(0, actifNetOpt*qpEnfants);
const partParEnfantOpt = nbEnf>=1 ? masseEnfantsOpt/nbEnf : 0;
const assietteEnfantOpt = Math.max(0, partParEnfantOpt-100000);
const droitsEnfantsOpt = droitsLD(assietteEnfantOpt)*nbEnf;
const nbBenefOpt = Math.max(nbBenef, Math.ceil(av70a/152500)||1);
const taxe990Opt = taxeAvAvant70(av70a, nbBenefOpt);
const taxeAvOpt = taxe990Opt+droits757;
const droitsTotalOpt = droitsEnfantsOpt+taxeAvOpt;
const economie = Math.max(0, droitsTotal-droitsTotalOpt);const regLbl = reg==='communaute' ? 'Communauté légale' : reg==='separation' ? 'Séparation de biens' : 'Participation aux acquêts';let h=`
Actif net successoral
${fmt(actifNet)}
${isCommunaute?'Moitié du défunt − passif':'Actif brut − passif'}
Droits enfants total
${fmt(droitsEnfantsTotal)}
${nbEnf} enfant${nbEnf>1?'s':''} · ${fmt(droitsParEnfant)} / enfant
Taxe assurance-vie
${fmt(taxeAvTotal)}
990 I ${fmt(taxe990)} · 757 B ${fmt(droits757)}
Taux effectif global
${pct2(tauxEffGlobal)}
Sur ${fmt(denomGlobal)} transmis
`;h+=`
Composition de l'actif taxable - ${regLbl}
Actif immobilier ${fmt(immo)}
Actif financier ${fmt(fin)}
Parts de sociétés ${fmt(parts)}
Actif brut du patrimoine ${fmt(brutTotal)}
${isCommunaute?'Quote-part du défunt (50 % - biens communs)':'Aucun partage de communauté'} ${isCommunaute?fmt(actifBrut):'-'}
Passif déductible − ${fmt(passif)}
Actif net successoral ${fmt(actifNet)}
`;h+=`
Répartition entre héritiers
Quote-part des enfants ${pct0(qpEnfants)} · ${fmt(masseEnfants)}
Quote-part du conjoint survivant ${conj?pct0(qpConjoint)+' · '+fmt(masseConjoint):'Non héritier'}
Part brute par enfant (avant abattement) ${fmt(partParEnfant)}
Abattement par enfant (100 000 € − donations) ${fmt(abattementEnfant)}
Assiette taxable par enfant (après abattement) ${fmt(assietteEnfant)}
`;h+=`
Droits de mutation par enfant - barème ligne directe (art. 777 CGI)
Assiette taxable par enfant ${fmt(assietteEnfant)}
Droits dus par enfant ${fmt(droitsParEnfant)}
Taux moyen sur la part reçue ${partParEnfant>0?pct1(droitsParEnfant/partParEnfant):'0,0 %'}
Droits enfants - total (${nbEnf}) ${fmt(droitsEnfantsTotal)}
Droits du conjoint survivant 0 € - exonéré (art. 796-0 bis)
`;h+=`
Assurance-vie - taxation hors succession
Primes avant 70 ans (art. 990 I) ${fmt(av70a)}
Capital par bénéficiaire (${nbBenef}) ${fmt(parBenef990)}
Abattement de 152 500 € / bénéficiaire ${fmt(Math.min(parBenef990,152500))}
Base taxable par bénéficiaire ${fmt(base990)}
Prélèvement 990 I (20 % puis 31,25 %) ${fmt(taxe990)}
Primes après 70 ans (art. 757 B) ${fmt(av70b)}
Abattement global de 30 500 € ${fmt(Math.min(av70b,30500))}
Assiette 757 B soumise au barème ${fmt(assiette757)}
Droits 757 B (barème succession) ${fmt(droits757)}
Taxe assurance-vie totale ${fmt(taxeAvTotal)}
`;h+=`
Comparatif - avant / après optimisation
Scénario Droits enfants Taxe assurance-vie Total droits Économie Statu quo Transmission au décès sans anticipation ${fmt(droitsEnfantsTotal)} ${fmt(taxeAvTotal)} ${fmt(droitsTotal)} Référence Donation 100 000 €/enfant + clause AV optimisée Donation du vivant (abattement 15 ans) · ${nbBenefOpt} bénéficiaire${nbBenefOpt>1?'s':''} AV ${fmt(droitsEnfantsOpt)} ${fmt(taxeAvOpt)} ${fmt(droitsTotalOpt)} − ${fmt(economie)}
`;h+=`
Conjoint survivant : totalement exonéré de droits de succession depuis la loi TEPA (art. 796-0 bis CGI), quel que soit le montant recueilli.
`;
h+=`
Abattement enfant : 100 000 € par enfant et par parent, reconstitué tous les 15 ans (art. 779 CGI). Anticiper des donations permet de purger cet abattement à plusieurs reprises.
`;
h+=`
Assurance-vie hors succession : les capitaux échappent aux droits de succession et sont taxés dans un régime propre - art. 990 I (primes versées avant 70 ans, abattement 152 500 € par bénéficiaire) et art. 757 B (primes versées après 70 ans, abattement global 30 500 €, seuls les capitaux excédant les primes étant en principe taxés).
`;
h+=`
Hypothèses et bornes : dévolution légale simplifiée (conjoint au quart en pleine propriété lorsqu'il est héritier), part enfants 3/4 · conjoint 1/4. En communauté légale, seule la moitié des biens communs entre dans la succession. Simulation indicative, hors frais de notaire, hors démembrement et hors régimes de faveur (Dutreil, réversion d'usufruit) - année fiscale 2026.
`;buildHtml('suc_r',h);
}$('suc-calc-btn').addEventListener('click', calc);
})();