[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"footer-root-categories-fr-FR":3,"tool-content-indemnite-cadres-des-travaux-publics-fr":83,"footer-cities-fr":146},[4,14,22,30,38,45,53,60,67,75],{"seo_content":5,"id":8,"name":9,"slug":10,"parentId":7,"lang":11,"_count":12},[6],{"page_slug":7},null,"cmkzhl7xm00dbulbc93h4qog5","Juridique","avocats","fr-FR",{"experts":13},8,{"seo_content":15,"id":17,"name":18,"slug":19,"parentId":7,"lang":11,"_count":20},[16],{"page_slug":7},"cmkzhl84700djulbcbv6pzu9e","Informatique","informaticiens",{"experts":21},3,{"seo_content":23,"id":25,"name":26,"slug":27,"parentId":7,"lang":11,"_count":28},[24],{"page_slug":7},"cmkzhlaos00gnulbc07i9jrco","Amélioration de la Maison","artisans",{"experts":29},4,{"seo_content":31,"id":33,"name":34,"slug":35,"parentId":7,"lang":11,"_count":36},[32],{"page_slug":7},"cmkzhlaqg00gpulbcx38bwoc2","Général","divers-generalistes",{"experts":37},0,{"seo_content":39,"id":41,"name":42,"slug":43,"parentId":7,"lang":11,"_count":44},[40],{"page_slug":7},"cmkzhlbvq00i3ulbcutdbcz50","Électronique Grand Public","techniciens-electronique",{"experts":21},{"seo_content":46,"id":48,"name":49,"slug":50,"parentId":7,"lang":11,"_count":51},[47],{"page_slug":7},"cmkzhlcaw00ilulbc38pxoogr","Santé","medecins",{"experts":52},5,{"seo_content":54,"id":56,"name":57,"slug":58,"parentId":7,"lang":11,"_count":59},[55],{"page_slug":7},"cmkzhlcmi00izulbcxva1m47f","Gestion de Patrimoine","conseillers-patrimoniaux",{"experts":21},{"seo_content":61,"id":63,"name":64,"slug":65,"parentId":7,"lang":11,"_count":66},[62],{"page_slug":7},"cmkzhldcv00jvulbcmcd5a7mk","Animaux et Vétérinaires","veterinaires",{"experts":21},{"seo_content":68,"id":70,"name":71,"slug":72,"parentId":7,"lang":11,"_count":73},[69],{"page_slug":7},"cmkzhldrr00kdulbchxfo67eg","Mécanique et Réparation","mecaniciens",{"experts":74},1,{"seo_content":76,"id":78,"name":79,"slug":80,"parentId":7,"lang":11,"_count":81},[77],{"page_slug":7},"cmkzhl9l300fbulbcv3i8q8p3","Aide aux Devoirs","professeurs-particuliers",{"experts":82},6,{"slug":84,"title":85,"page_title":86,"description":87,"content_md":88,"local_slug":84,"json_ld":89,"faq":109,"tool_html":140,"source":141,"category":142,"audience":143,"publish_mode":144,"hero_image":145,"hero_image_alt":85},"indemnite-cadres-des-travaux-publics","Indemnité de licenciement — cadres des travaux publics","Indemnité licenciement CCN cadres travaux publics IDCC 3212 | Expert Zoom","Calculez l'indemnité de licenciement des cadres des travaux publics (IDCC 3212) : formule 3\u002F10 puis 6\u002F10 mois\u002Fan, bonus +55 ans, comparaison avec le code du travail. Moins de 155 caractères.","La CCN IDCC 3212 prévoit une indemnité de licenciement plus favorable que la loi : 3\u002F10 de mois par année jusqu'à 10 ans et 6\u002F10 au-delà, avec un bonus de +10 % pour les cadres âgés de 55 ans ou plus. Seuil d'ancienneté : 2 ans. Plafond : 15 mois de salaire brut.",[90],{"name":91,"@type":92,"about":93,"author":97,"@context":100,"isPartOf":101,"inLanguage":104,"description":105,"operatingSystem":106,"applicationCategory":107,"isAccessibleForFree":108},"Calculateur indemnité de licenciement — CCN cadres des travaux publics IDCC 3212","WebApplication",{"name":94,"@type":95,"identifier":96},"Convention collective nationale des cadres des travaux publics","Thing","IDCC 3212",{"name":98,"@type":99},"Expert-Zoom","Organization","https:\u002F\u002Fschema.org",{"url":102,"@type":103},"\u002Ffr\u002Fmagazine\u002Fjuridique\u002Fles-conventions-collectives-en-france","Article","fr","Calculez l'indemnité de licenciement selon la formule de la convention collective des cadres des travaux publics (IDCC 3212) : 3\u002F10 mois × années ≤ 10 ans, 6\u002F10 mois × années > 10 ans, avec bonus +55 ans et comparaison avec le code du travail.","All","FinanceApplication",true,[110,113,116,119,122,125,128,131,134,137],{"a":111,"q":112},"La CCN IDCC 3212 prévoit à l'article 7.5 : 3\u002F10 de mois de salaire par année d'ancienneté jusqu'à 10 ans, puis 6\u002F10 de mois par année au-delà. Cette formule est plus favorable que le code du travail (1\u002F4 mois puis 1\u002F3 mois). Exemple : pour 15 ans d'ancienneté et 4 000 €\u002Fmois — tranche 1 : 3\u002F10 × 10 × 4 000 = 12 000 €, tranche 2 : 6\u002F10 × 5 × 4 000 = 12 000 €, total = 24 000 €.","Quelle est la formule de l'indemnité de licenciement dans la CCN des cadres des travaux publics (IDCC 3212) ?",{"a":114,"q":115},"La CCN IDCC 3212 exige 2 ans d'ancienneté minimum, ce qui est plus favorable que le code du travail qui requiert 8 mois de présence. Un cadre licencié avec 2 ans d'ancienneté perçoit donc déjà son indemnité conventionnelle.","Quelle est l'ancienneté minimale pour toucher l'indemnité de licenciement CCN 3212 ?",{"a":117,"q":118},"Oui. Si le cadre a 55 ans ou plus à la date d'expiration du préavis, son indemnité de licenciement est majorée de 10 %. Cette majoration s'applique sur le montant total calculé selon la formule conventionnelle 3\u002F10 + 6\u002F10, dans la limite du plafond de 15 mois.","Le cadre de plus de 55 ans bénéficie-t-il d'une majoration de l'indemnité de licenciement dans la CCN 3212 ?",{"a":120,"q":121},"Oui, la CCN IDCC 3212 plafonne l'indemnité à 15 mois de salaire brut. Ce plafond s'applique après calcul de la majoration éventuelle de +10 % pour les cadres de 55 ans et plus. Pour un cadre gagnant 5 000 €\u002Fmois, le plafond est donc de 75 000 €.","Y a-t-il un plafond à l'indemnité de licenciement des cadres des travaux publics ?",{"a":123,"q":124},"Le salaire de référence est le plus favorable entre : (1) la moyenne brute des 12 derniers mois et (2) la moyenne brute des 3 derniers mois. Sont inclus : le salaire fixe, les primes contractuelles et les avantages en nature. Les primes exceptionnelles et remboursements de frais sont exclus.","Comment calcule-t-on le salaire de référence pour l'indemnité de licenciement CCN 3212 ?",{"a":126,"q":127},"Pour un cadre à 4 000 €\u002Fmois avec 20 ans d'ancienneté — Légale (L1234-9) : (1\u002F4 × 10 × 4 000) + (1\u002F3 × 10 × 4 000) = 10 000 + 13 333 = 23 333 €. CCN IDCC 3212 : (3\u002F10 × 10 × 4 000) + (6\u002F10 × 10 × 4 000) = 12 000 + 24 000 = 36 000 €. Gain : +12 667 € grâce à la convention collective.","Quelle est la différence entre l'indemnité légale et l'indemnité CCN 3212 pour un cadre avec 20 ans d'ancienneté ?",{"a":129,"q":130},"L'indemnité de licenciement est exonérée d'impôt sur le revenu jusqu'au montant le plus élevé entre : (1) le montant légal ou conventionnel, (2) 2 fois la rémunération annuelle brute de l'année précédente, ou (3) 50 % de l'indemnité perçue, dans la limite de 6 fois le PASS (environ 278 208 € en 2026). La fraction exonérée est également exclue des cotisations sociales dans la même limite.","L'indemnité de licenciement CCN 3212 est-elle imposable ?",{"a":132,"q":133},"Oui. En cas de mise à la retraite à l'initiative de l'employeur, la convention collective des cadres des travaux publics applique le même calcul d'indemnité que pour le licenciement (3\u002F10 puis 6\u002F10), sous réserve des conditions d'ancienneté. Le préavis est de 3 mois quel que soit l'ancienneté dans ce cas.","La CCN IDCC 3212 s'applique-t-elle également à la mise à la retraite par l'employeur ?",{"a":135,"q":136},"L'article 7.5 de la convention collective nationale des cadres des travaux publics (IDCC 3212, signée le 20 novembre 2015) fixe les règles de calcul de l'indemnité de licenciement. Le texte complet est disponible sur Légifrance sous la référence KALICONT000032437525.","Quel article de la CCN 3212 fixe l'indemnité de licenciement des cadres des travaux publics ?",{"a":138,"q":139},"Oui. Le mode d'organisation du temps de travail (forfait-jours ou horaire) n'influe pas sur le calcul de l'indemnité de licenciement. La formule 3\u002F10 + 6\u002F10 s'applique à tous les cadres couverts par la CCN IDCC 3212, qu'ils soient sous forfait-jours ou sous horaire classique.","Un cadre en forfait-jours a-t-il les mêmes droits à l'indemnité de licenciement que les autres cadres de la CCN 3212 ?","\u003C!DOCTYPE html>\n\u003Chtml lang=\"fr\">\n\u003Chead>\n  \u003Cmeta charset=\"utf-8\">\n  \u003Cmeta name=\"viewport\" content=\"width=device-width,initial-scale=1\">\n  \u003Ctitle>Indemnité de licenciement — CCN Cadres Travaux Publics IDCC 3212\u003C\u002Ftitle>\n  \u003Cscript src=\"https:\u002F\u002Funpkg.com\u002Flucide@latest\u002Fdist\u002Fumd\u002Flucide.min.js\">\u003C\u002Fscript>\n  \u003Cstyle>\n    :root {\n      --bg: #fafaf9;\n      --surface: #ffffff;\n      --border: #e7e5e4;\n      --accent: #2563eb;\n      --accent-light: #dbeafe;\n      --accent-dark: #1d4ed8;\n      --text: #1c1917;\n      --text-muted: #78716c;\n      --text-light: #a8a29e;\n      --success: #16a34a;\n      --warn: #d97706;\n      --radius: 0.75rem;\n      --radius-sm: 0.375rem;\n    }\n    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\n    body { background: var(--bg); font-family: system-ui, -apple-system, sans-serif; color: var(--text); line-height: 1.5; }\n    .tool-root { max-width: 720px; margin: 0 auto; padding: 1.25rem 1rem 2rem; }\n\n    \u002F* Header *\u002F\n    .tool-header { margin-bottom: 1.25rem; }\n    .tool-title { font-size: 1.125rem; font-weight: 700; }\n    .tool-desc { font-size: 0.875rem; color: var(--text-muted); margin-top: 0.375rem; line-height: 1.6; }\n    .tool-badge { display: inline-flex; align-items: center; gap: 0.375rem; margin-top: 0.375rem; font-size: 0.75rem; color: var(--text-muted); background: var(--border); padding: 0.2rem 0.625rem; border-radius: 9999px; }\n\n    \u002F* Context block *\u002F\n    .context-block {\n      background: var(--surface); border: 1px solid var(--border);\n      border-radius: var(--radius); padding: 1rem 1.125rem; margin-bottom: 1.25rem;\n      font-size: 0.8125rem; line-height: 1.7;\n    }\n    .context-block h2 { font-size: 0.875rem; font-weight: 600; margin-bottom: 0.5rem; }\n    .context-block ul { padding-left: 1.25rem; color: var(--text-muted); }\n    .context-block li { margin-bottom: 0.25rem; }\n    .context-block strong { color: var(--text); }\n\n    \u002F* Comparison bar *\u002F\n    .compare-bar {\n      display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin-bottom: 1.25rem;\n    }\n    .compare-card {\n      background: var(--surface); border: 1px solid var(--border);\n      border-radius: var(--radius-sm); padding: 0.75rem;\n    }\n    .compare-card.ccn { border-color: #bfdbfe; background: var(--accent-light); }\n    .compare-label { font-size: 0.6875rem; font-weight: 600; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 0.25rem; }\n    .compare-card.ccn .compare-label { color: var(--accent-dark); }\n    .compare-value { font-size: 0.875rem; font-weight: 600; }\n    .compare-card.ccn .compare-value { color: var(--accent-dark); }\n\n    \u002F* Rule callout *\u002F\n    .rule-callout {\n      display: flex; gap: 0.625rem; align-items: flex-start;\n      background: var(--accent-light); border: 1px solid #bfdbfe;\n      border-radius: var(--radius-sm); padding: 0.875rem; margin-bottom: 1.25rem;\n      font-size: 0.8125rem;\n    }\n    .rule-callout i { color: var(--accent); flex-shrink: 0; margin-top: 0.1rem; }\n    .rule-callout p { color: #1e40af; }\n\n    \u002F* Form *\u002F\n    .form-grid { display: grid; gap: 1rem; margin-bottom: 1.25rem; }\n    .field { display: flex; flex-direction: column; gap: 0.375rem; }\n    .field label { font-size: 0.8125rem; font-weight: 500; display: flex; justify-content: space-between; }\n    .field label span { font-weight: 700; color: var(--accent); font-variant-numeric: tabular-nums; }\n    input[type=range] { width: 100%; accent-color: var(--accent); cursor: pointer; }\n    select { width: 100%; padding: 0.5rem 0.75rem; border: 1px solid var(--border); border-radius: var(--radius-sm); font-size: 0.875rem; background: var(--surface); }\n\n    .pills { display: flex; flex-wrap: wrap; gap: 0.5rem; }\n    .pill-btn {\n      padding: 0.375rem 0.875rem; font-size: 0.8125rem; font-weight: 500;\n      border: 1.5px solid var(--border); border-radius: 9999px;\n      background: var(--surface); color: var(--text-muted); cursor: pointer; transition: all 0.15s;\n    }\n    .pill-btn.active { border-color: var(--accent); background: var(--accent-light); color: var(--accent); }\n    .pill-btn:hover:not(.active) { border-color: var(--text-light); }\n\n    \u002F* Result *\u002F\n    .result-card {\n      background: var(--surface); border: 1px solid var(--border);\n      border-radius: var(--radius); padding: 1.25rem; margin-bottom: 1rem;\n    }\n    .result-label { font-size: 0.75rem; font-weight: 500; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 0.375rem; }\n    .result-amount { font-size: 2rem; font-weight: 800; color: var(--success); font-variant-numeric: tabular-nums; line-height: 1.1; }\n    .result-sub { font-size: 0.8125rem; color: var(--text-muted); margin-top: 0.5rem; }\n    .result-breakdown { margin-top: 0.875rem; display: flex; flex-direction: column; gap: 0.375rem; }\n    .breakdown-row { display: flex; justify-content: space-between; font-size: 0.8125rem; }\n    .breakdown-row .bk-label { color: var(--text-muted); }\n    .breakdown-row .bk-val { font-weight: 600; font-variant-numeric: tabular-nums; }\n    .divider { border: none; border-top: 1px solid var(--border); margin: 0.75rem 0; }\n\n    \u002F* Comparison result *\u002F\n    .compare-result { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin: 1rem 0; }\n    .cr-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 0.875rem; }\n    .cr-card.ccn-card { border-color: #bfdbfe; background: var(--accent-light); }\n    .cr-label { font-size: 0.6875rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; color: var(--text-muted); margin-bottom: 0.25rem; }\n    .ccn-card .cr-label { color: var(--accent-dark); }\n    .cr-amount { font-size: 1.25rem; font-weight: 800; font-variant-numeric: tabular-nums; }\n    .cr-amount.better { color: var(--success); }\n    .cr-note { font-size: 0.75rem; color: var(--text-muted); margin-top: 0.25rem; }\n\n    \u002F* Disclaimer *\u002F\n    .disclaimer { font-size: 0.75rem; color: var(--text-muted); margin-top: 1.5rem; padding: 0.75rem; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-sm); line-height: 1.6; }\n    .disclaimer a { color: var(--accent); text-decoration: underline; }\n  \u003C\u002Fstyle>\n\u003C\u002Fhead>\n\u003Cbody>\n\u003C!-- CCN IDCC 3212 — Convention collective des cadres des travaux publics\n     indemnite: L1234-9 → 3\u002F10 × années ≤10 ans + 6\u002F10 × années >10 ans\n     Seuil ancienneté: 2 ans (vs 8 mois légal)\n     Bonus: +10% si >55 ans au terme du préavis\n     Plafond: 15 mois de salaire brut\n     Source: Légifrance KALICONT000032437525 – Art. 7.5\n-->\n\u003Cmain class=\"tool-root\">\n  \u003Cdiv class=\"tool-header\">\n    \u003Cdiv class=\"tool-title\">Indemnité de licenciement — CCN cadres des travaux publics\u003C\u002Fdiv>\n    \u003Cdiv class=\"tool-badge\">\n      \u003Ci data-lucide=\"tag\" style=\"width:13px;height:13px\">\u003C\u002Fi>\n      IDCC 3212\n    \u003C\u002Fdiv>\n    \u003Cp class=\"tool-desc\">\n      La convention collective nationale des cadres des travaux publics (IDCC 3212) prévoit une indemnité de licenciement plus favorable que le code du travail. Ce calculateur applique la formule conventionnelle article 7.5 : \u003Cstrong>3\u002F10 de mois × années ≤ 10 ans\u003C\u002Fstrong>, puis \u003Cstrong>6\u002F10 de mois × années au-delà\u003C\u002Fstrong>, avec un bonus pour les cadres de plus de 55 ans et un plafond à 15 mois de salaire brut.\n    \u003C\u002Fp>\n  \u003C\u002Fdiv>\n\n  \u003Cdiv class=\"context-block\">\n    \u003Ch2>Formule CCN IDCC 3212 vs code du travail\u003C\u002Fh2>\n    \u003Cul>\n      \u003Cli>\u003Cstrong>Seuil d'ancienneté :\u003C\u002Fstrong> 2 ans minimum (vs 8 mois légaux)\u003C\u002Fli>\n      \u003Cli>\u003Cstrong>Tranche 1 (≤ 10 ans) :\u003C\u002Fstrong> 3\u002F10 de mois\u002Fan — soit 0,30 (vs 1\u002F4 = 0,25 légal)\u003C\u002Fli>\n      \u003Cli>\u003Cstrong>Tranche 2 (> 10 ans) :\u003C\u002Fstrong> 6\u002F10 de mois\u002Fan — soit 0,60 (vs 1\u002F3 ≈ 0,33 légal)\u003C\u002Fli>\n      \u003Cli>\u003Cstrong>Bonus âge :\u003C\u002Fstrong> +10 % si le cadre a 55 ans ou plus à la fin du préavis\u003C\u002Fli>\n      \u003Cli>\u003Cstrong>Plafond :\u003C\u002Fstrong> 15 mois de salaire brut\u003C\u002Fli>\n      \u003Cli>\u003Cstrong>Base de calcul :\u003C\u002Fstrong> dernier salaire brut mensuel (référence sur 12 mois ou 3 mois, la plus favorable)\u003C\u002Fli>\n    \u003C\u002Ful>\n  \u003C\u002Fdiv>\n\n  \u003Cdiv class=\"rule-callout\">\n    \u003Ci data-lucide=\"info\" style=\"width:16px;height:16px\">\u003C\u002Fi>\n    \u003Cp>Cette convention est \u003Cstrong>significativement plus favorable\u003C\u002Fstrong> que le code du travail pour les cadres, notamment grâce au taux de 6\u002F10 au-delà de 10 ans (contre 1\u002F3 légal) et au bonus de +10 % pour les cadres seniors.\u003C\u002Fp>\n  \u003C\u002Fdiv>\n\n  \u003Cdiv class=\"form-grid\">\n    \u003Cdiv class=\"field\">\n      \u003Clabel>Salaire de référence brut mensuel \u003Cspan id=\"sal-val\">3 500 €\u003C\u002Fspan>\u003C\u002Flabel>\n      \u003Cinput type=\"range\" id=\"sal\" min=\"2500\" max=\"15000\" step=\"50\" value=\"3500\">\n    \u003C\u002Fdiv>\n    \u003Cdiv class=\"field\">\n      \u003Clabel>Ancienneté (années) \u003Cspan id=\"anc-val\">5 ans\u003C\u002Fspan>\u003C\u002Flabel>\n      \u003Cinput type=\"range\" id=\"anc\" min=\"0\" max=\"40\" step=\"1\" value=\"5\">\n    \u003C\u002Fdiv>\n    \u003Cdiv class=\"field\">\n      \u003Clabel style=\"margin-bottom:0.25rem\">Motif de la rupture\u003C\u002Flabel>\n      \u003Cdiv class=\"pills\" id=\"motif-pills\">\n        \u003Cbutton class=\"pill-btn active\" data-motif=\"licenciement\">Licenciement\u003C\u002Fbutton>\n        \u003Cbutton class=\"pill-btn\" data-motif=\"retraite-employeur\">Mise à la retraite par l'employeur\u003C\u002Fbutton>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n    \u003Cdiv class=\"field\">\n      \u003Clabel style=\"margin-bottom:0.25rem\">Âge au terme du préavis\u003C\u002Flabel>\n      \u003Cdiv class=\"pills\" id=\"age-pills\">\n        \u003Cbutton class=\"pill-btn active\" data-age=\"moins55\">Moins de 55 ans\u003C\u002Fbutton>\n        \u003Cbutton class=\"pill-btn\" data-age=\"plus55\">55 ans ou plus (+10 %)\u003C\u002Fbutton>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\n  \u003C!-- Main result -->\n  \u003Cdiv class=\"result-card\">\n    \u003Cdiv class=\"result-label\">Indemnité conventionnelle (IDCC 3212)\u003C\u002Fdiv>\n    \u003Cdiv class=\"result-amount\" id=\"main-amount\">0 €\u003C\u002Fdiv>\n    \u003Cdiv class=\"result-sub\" id=\"main-sub\">\u003C\u002Fdiv>\n    \u003Chr class=\"divider\">\n    \u003Cdiv class=\"result-breakdown\">\n      \u003Cdiv class=\"breakdown-row\">\n        \u003Cspan class=\"bk-label\">Tranche 1 : 3\u002F10 × \u003Cspan id=\"bd-anc1\">—\u003C\u002Fspan> × \u003Cspan id=\"bd-sal\">—\u003C\u002Fspan>\u003C\u002Fspan>\n        \u003Cspan class=\"bk-val\" id=\"bd-t1\">0 €\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"breakdown-row\">\n        \u003Cspan class=\"bk-label\">Tranche 2 : 6\u002F10 × \u003Cspan id=\"bd-anc2\">—\u003C\u002Fspan> × \u003Cspan id=\"bd-sal2\">—\u003C\u002Fspan>\u003C\u002Fspan>\n        \u003Cspan class=\"bk-val\" id=\"bd-t2\">0 €\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"breakdown-row\" id=\"bd-bonus-row\">\n        \u003Cspan class=\"bk-label\">Bonus +55 ans (+10 %)\u003C\u002Fspan>\n        \u003Cspan class=\"bk-val\" id=\"bd-bonus\">—\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"breakdown-row\" id=\"bd-cap-row\" style=\"display:none\">\n        \u003Cspan class=\"bk-label\" style=\"color:var(--warn)\">Plafond 15 mois appliqué\u003C\u002Fspan>\n        \u003Cspan class=\"bk-val\" style=\"color:var(--warn)\" id=\"bd-cap\">—\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\n  \u003C!-- Comparison CCN vs légal -->\n  \u003Cdiv class=\"compare-result\">\n    \u003Cdiv class=\"cr-card\">\n      \u003Cdiv class=\"cr-label\">Code du travail (L1234-9)\u003C\u002Fdiv>\n      \u003Cdiv class=\"cr-amount\" id=\"legal-amount\">0 €\u003C\u002Fdiv>\n      \u003Cdiv class=\"cr-note\">1\u002F4 mois × années ≤ 10 ans\u003Cbr>+ 1\u002F3 mois × années > 10 ans\u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n    \u003Cdiv class=\"cr-card ccn-card\">\n      \u003Cdiv class=\"cr-label\">CCN IDCC 3212\u003C\u002Fdiv>\n      \u003Cdiv class=\"cr-amount better\" id=\"ccn-amount\">0 €\u003C\u002Fdiv>\n      \u003Cdiv class=\"cr-note\">3\u002F10 mois × années ≤ 10 ans\u003Cbr>+ 6\u002F10 mois × années > 10 ans\u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n  \u003Cdiv id=\"gain-row\" style=\"font-size:0.8125rem;color:var(--success);font-weight:600;margin-bottom:1rem;display:none\">\n    \u003Ci data-lucide=\"trending-up\" style=\"width:14px;height:14px;vertical-align:-2px;margin-right:4px\">\u003C\u002Fi>\n    Gain conventionnel : \u003Cspan id=\"gain-amount\">0 €\u003C\u002Fspan> de plus grâce à la CCN IDCC 3212.\n  \u003C\u002Fdiv>\n\n  \u003Cp class=\"disclaimer\">\n    \u003Ci data-lucide=\"shield\" style=\"width:12px;height:12px;vertical-align:-2px;margin-right:4px\">\u003C\u002Fi>\n    Calcul indicatif basé sur la CCN IDCC 3212 — Convention collective nationale des cadres des travaux publics (20 novembre 2015), article 7.5.\n    Source : \u003Ca href=\"https:\u002F\u002Fwww.legifrance.gouv.fr\u002Fconv_coll\u002Fid\u002FKALICONT000032437525\" target=\"_blank\" rel=\"noopener\">Légifrance\u003C\u002Fa>.\n    Pour une validation légale ou en cas de litige\n  \u003C\u002Fp>\n\u003C\u002Fmain>\n\n\u003Cscript>\nconst fmt = (n) => new Intl.NumberFormat('fr-FR', { style: 'currency', currency: 'EUR', maximumFractionDigits: 0 }).format(n);\n\nconst state = { sal: 3500, anc: 5, motif: 'licenciement', age: 'moins55' };\n\nfunction computeCCN(s) {\n  if (s.anc \u003C 2) return { amount: 0, t1: 0, t2: 0, bonus: 0, capped: false };\n  const anc1 = Math.min(s.anc, 10);\n  const anc2 = Math.max(s.anc - 10, 0);\n  const t1 = (3 \u002F 10) * s.sal * anc1;\n  const t2 = (6 \u002F 10) * s.sal * anc2;\n  let base = t1 + t2;\n  let bonus = 0;\n  if (s.age === 'plus55') bonus = base * 0.1;\n  let total = base + bonus;\n  const plafond = 15 * s.sal;\n  let capped = false;\n  if (total > plafond) { total = plafond; capped = true; }\n  return { amount: total, t1, t2, bonus, capped };\n}\n\nfunction computeLegal(s) {\n  if (s.anc \u003C 8 \u002F 12) return 0;\n  const anc1 = Math.min(s.anc, 10);\n  const anc2 = Math.max(s.anc - 10, 0);\n  return (1 \u002F 4) * s.sal * anc1 + (1 \u002F 3) * s.sal * anc2;\n}\n\nfunction render() {\n  const s = state;\n  const ccn = computeCCN(s);\n  const legal = computeLegal(s);\n  const anc1 = Math.min(s.anc, 10);\n  const anc2 = Math.max(s.anc - 10, 0);\n\n  document.getElementById('main-amount').textContent = fmt(ccn.amount);\n  document.getElementById('bd-anc1').textContent = anc1 + ' an' + (anc1 > 1 ? 's' : '');\n  document.getElementById('bd-sal').textContent = fmt(s.sal);\n  document.getElementById('bd-sal2').textContent = fmt(s.sal);\n  document.getElementById('bd-anc2').textContent = anc2 + ' an' + (anc2 > 1 ? 's' : '');\n  document.getElementById('bd-t1').textContent = fmt(ccn.t1);\n  document.getElementById('bd-t2').textContent = ccn.t2 > 0 ? fmt(ccn.t2) : '—';\n  document.getElementById('bd-bonus-row').style.display = s.age === 'plus55' ? '' : 'none';\n  document.getElementById('bd-bonus').textContent = ccn.bonus > 0 ? fmt(ccn.bonus) : '—';\n  document.getElementById('bd-cap-row').style.display = ccn.capped ? '' : 'none';\n  if (ccn.capped) document.getElementById('bd-cap').textContent = 'Limité à ' + fmt(15 * s.sal);\n\n  const sub = s.anc \u003C 2\n    ? 'Ancienneté insuffisante — seuil CCN : 2 ans.'\n    : 'Base : ' + fmt(s.sal) + ' × ' + s.anc + ' an' + (s.anc > 1 ? 's' : '') + '.';\n  document.getElementById('main-sub').textContent = sub;\n\n  document.getElementById('legal-amount').textContent = fmt(legal);\n  document.getElementById('ccn-amount').textContent = fmt(ccn.amount);\n\n  const gain = ccn.amount - legal;\n  const gainRow = document.getElementById('gain-row');\n  if (gain > 0) {\n    gainRow.style.display = '';\n    document.getElementById('gain-amount').textContent = fmt(gain);\n  } else {\n    gainRow.style.display = 'none';\n  }\n}\n\n\u002F\u002F Inputs\ndocument.getElementById('sal').addEventListener('input', function() {\n  state.sal = +this.value;\n  document.getElementById('sal-val').textContent = fmt(state.sal);\n  render();\n});\ndocument.getElementById('anc').addEventListener('input', function() {\n  state.anc = +this.value;\n  document.getElementById('anc-val').textContent = this.value + ' an' + (+this.value > 1 ? 's' : '');\n  render();\n});\ndocument.querySelectorAll('#motif-pills .pill-btn').forEach(btn => {\n  btn.addEventListener('click', function() {\n    document.querySelectorAll('#motif-pills .pill-btn').forEach(b => b.classList.remove('active'));\n    this.classList.add('active');\n    state.motif = this.dataset.motif;\n    render();\n  });\n});\ndocument.querySelectorAll('#age-pills .pill-btn').forEach(btn => {\n  btn.addEventListener('click', function() {\n    document.querySelectorAll('#age-pills .pill-btn').forEach(b => b.classList.remove('active'));\n    this.classList.add('active');\n    state.age = this.dataset.age;\n    render();\n  });\n});\n\nwindow.addEventListener('load', () => {\n  lucide.createIcons();\n  render();\n\n  const ro = new ResizeObserver(() => {\n    const h = Math.max(document.documentElement.scrollHeight, document.body.scrollHeight);\n    parent.postMessage({ type: 'resize', height: h }, '*');\n  });\n  ro.observe(document.documentElement);\n});\n\u003C\u002Fscript>\n\u003C\u002Fbody>\n\u003C\u002Fhtml>\n","generated","juridique","consumer","both","https:\u002F\u002Fpub-bdebbd2dad294475a2da0eb657815b6b.r2.dev\u002Ftools\u002Findemnite-cadres-des-travaux-publics-abfd5f0705.webp",[]]