.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;
}
.focs-sim .focs-tpsa {
font-size: 10.5px !important;
text-transform: uppercase !important;
color: var(--focs-bleu-60) !important;
font-weight: 600 !important;
font-family: 'Montserrat', sans-serif !important;
}
.focs-sim .focs-tpsr {
display: flex !important;
gap: 14px !important;
flex-wrap: wrap !important;
justify-content: center !important;
width: 100% !important;
}
.focs-sim .focs-tpsr .focs-tpsn {
flex: 1 1 220px !important;
min-width: 200px !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;
}
.focs-sim .focs-tpsr {
flex-direction: column !important;
}
.focs-sim .focs-tpsn {
min-width: 0 !important;
width: 100% !important;
}
}
Contrat d'assurance-vie dénoué
Capital décès total (€) Capital global versé par l'assureur au dénouement du contrat
Primes versées avant 70 ans (€) Fraction du capital issue de primes versées avant les 70 ans de l'assuré · art. 990 I CGI
Primes versées après 70 ans (€) Primes versées après 70 ans · seules ces primes sont taxées, art. 757 B CGI
Âge de l'usufruitier au décès Conjoint usufruitier · détermine la répartition US / NP au barème de l'art. 669 CGI
Clause bénéficiaire démembrée
Nombre de nus-propriétaires Enfants recueillant la nue-propriété du capital · abattement 990 I par bénéficiaire
Capital AV déjà reçu par enfant (€) Assurances-vie antérieures de l'assuré déjà taxées 990 I · s'impute sur l'abattement de 152 500 €
Simuler la clause bénéficiaire démembrée
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-cbd');
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 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 tauxNP(age){
if(age<21)return 0.10; if(age<31)return 0.20; if(age<41)return 0.30; if(age<51)return 0.40;
if(age<61)return 0.50; if(age<71)return 0.60; if(age<81)return 0.70; if(age<91)return 0.80; return 0.90;
}
function taxe990(assiette){
if(assiette<=0) return 0;
if(assiette {
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 calc(){
const cap=v('cbd_cap'), av=v('cbd_av'), ap=v('cbd_ap');
const age=Math.max(1,Math.round(v('cbd_age')));
const nb=Math.max(1,Math.round(v('cbd_nb')));
const ant=Math.max(0,v('cbd_ant'));const txNP=tauxNP(age), txUS=1-txNP;
const capNP=cap*txNP, capUS=cap*txUS;const partNPav=av*txNP;
const parEnf=partNPav/nb;
const ab990=Math.max(0,152500-ant);
const assiette990=Math.max(0,parEnf-ab990);
const taxe990parEnf=taxe990(assiette990);
const taxe990Total=taxe990parEnf*nb;const droitsConjoint=0;const ab757=30500;
const assiette757=Math.max(0,ap-ab757);
const droits757Total=droitsLD(assiette757);
const droits757parEnf=droits757Total/nb;const capPPparEnf=cap/nb;
const assiettePP=Math.max(0,capPPparEnf-152500);
const taxePPparEnf=taxe990(assiettePP);
const taxePPTotal=taxePPparEnf*nb;
const economie=(taxePPparEnf-taxe990parEnf)*nb;const coutDem=taxe990Total+droits757Total;
const coutStd=taxePPTotal+droits757Total;let h=`
Nue-propriété enfants
${fmt(capNP)}
Taux NP ${pct0(txNP)} · usufruit conjoint ${fmt(capUS)}
Taxe 990 I totale
${fmt(taxe990Total)}
Primes avant 70 ans · ${nb} bénéficiaire${nb>1?'s':''}
Droits 757 B
${fmt(droits757Total)}
Primes après 70 ans · barème succession
Économie vs clause standard
${fmt(economie)}
Sur la taxe 990 I des primes avant 70 ans
`;h+=`
Répartition usufruit / nue-propriété - art. 669 CGI
Capital décès total ${fmt(cap)}
Âge de l'usufruitier au décès ${age} ans
Taux de nue-propriété ${pct0(txNP)}
Valeur usufruit - conjoint (quasi-usufruit) ${fmt(capUS)}
Valeur nue-propriété - ${nb} enfant${nb>1?'s':''} ${fmt(capNP)}
Nue-propriété par enfant ${fmt(capNP/nb)}
`;h+=`
Prélèvement 990 I - primes versées avant 70 ans
Primes avant 70 ans ${fmt(av)}
Part taxable en nue-propriété (${pct0(txNP)}) ${fmt(partNPav)}
Assiette par enfant (avant abattement) ${fmt(parEnf)}
Abattement 152 500 € ${ant>0?'− AV antérieures '+fmt(ant):''} ${fmt(ab990)}
Assiette taxable par enfant ${fmt(assiette990)}
Taxe par enfant (20 % ≤ 700 000 €, puis 31,25 %) ${fmt(taxe990parEnf)}
Taxe 990 I totale (× ${nb}) ${fmt(taxe990Total)}
Droits de l'usufruitier - conjoint (art. 796-0 bis) ${fmt(droitsConjoint)}
`;h+=`
Droits de succession 757 B - primes versées après 70 ans
Primes après 70 ans ${fmt(ap)}
Abattement global (art. 757 B) ${fmt(ab757)}
Assiette taxable au barème ${fmt(assiette757)}
Droits de succession (barème ligne directe) ${fmt(droits757Total)}
Répartis par enfant (÷ ${nb}) ${fmt(droits757parEnf)}
`;const bestDem=coutDem<=coutStd;
h+=`
Comparatif - clause démembrée vs clause standard en pleine propriété
Clause bénéficiaire Assiette 990 I / enfant Taxe 990 I totale Droits 757 B Coût fiscal total Écart Clause démembrée Usufruit conjoint · nue-propriété enfants ${fmt(assiette990)} ${fmt(taxe990Total)} ${fmt(droits757Total)} ${fmt(coutDem)} Référence Clause standard (PP enfants) Pleine propriété · capital ÷ ${nb} ${fmt(assiettePP)} ${fmt(taxePPTotal)} ${fmt(droits757Total)} ${fmt(coutStd)} ${coutStd>=coutDem?'+ ':'− '}${fmt(Math.abs(coutStd-coutDem))}
`;h+=`
Schéma de la clause démembrée
Assureur - dénouement du contrat
${fmt(cap)}
Capital décès réparti en usufruit / nue-propriété (art. 669 CGI)
démembrement du capital
Usufruitier
Conjoint - ${fmt(capUS)}
Quasi-usufruit · disposition du capital · droits nuls (art. 796-0 bis)
Nus-propriétaires
${nb} enfant${nb>1?'s':''} - ${fmt(capNP)}
Taxe 990 I ${fmt(taxe990Total)} · créance de restitution sur la succession du conjoint
au décès du conjoint usufruitier
Extinction de l'usufruit
Créance de restitution
Les enfants récupèrent leur créance sur l'actif successoral, sans droits de succession
`;h+=`
Mécanisme & points de vigilance
Créance de restitution : le quasi-usufruit (art. 587 C. civ.) autorise le conjoint à disposer du capital ; les nus-propriétaires détiennent en contrepartie une créance de restitution égale à la valeur démembrée, récupérée au décès de l'usufruitier sur l'actif successoral - sans droits de succession, car elle constitue un passif de la succession.
Abattement 990 I (152 500 € par bénéficiaire) : en clause démembrée, l'abattement est réparti entre usufruitier et nus-propriétaires au prorata de leurs droits (BOI-TCAS-AUT-60). Le présent calcul retient l'abattement plein par nu-propriétaire selon les hypothèses fournies ; à affiner avec votre conseil.
Exonération du conjoint (art. 796-0 bis CGI) : le conjoint ou partenaire de PACS survivant est totalement exonéré, tant au titre du 990 I que du 757 B - la part d'usufruit ne supporte aucune taxation.
Bornes du calcul : taux d'usufruit fixé par l'art. 669 CGI selon l'âge ; taxe 990 I à 20 % jusqu'à 700 000 € puis 31,25 % ; droits 757 B au barème de succession en ligne directe sur les seules primes après 70 ans (après abattement global de 30 500 €). Base négative ramenée à 0.
Simulation à caractère indicatif et non-contractuel - année fiscale de référence 2026. Références : art. 990 I, 757 B, 669, 796-0 bis CGI. Nous vous invitons à consulter un professionnel Famille OFFICE pour la rédaction de la clause bénéficiaire.
`;buildHtml('cbd_r',h);
}$('cbd-calc-btn').addEventListener('click', calc);
})();