[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"footer-root-categories-fr-FR":3,"tool-content-ccn-commerces-de-detail-non-alimentaires-antiquites-fr":83,"footer-cities-fr":162},[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":126,"tool_html":156,"source":157,"category":158,"audience":159,"publish_mode":160,"hero_image":161,"hero_image_alt":85},"ccn-commerces-de-detail-non-alimentaires-antiquites","CCN des commerces de détail non alimentaires : antiquités, brocante, galeries d'art — calculateur complet","Calculateur CCN Antiquités, Brocante, Galeries d'art IDCC 1517 | Expert Zoom","Outil interactif couvrant l'indemnité de licenciement, le préavis, la grille salariale, la prime d'ancienneté, les congés supplémentaires et les heures supp de la CCN des commerces de détail non alimentaires : antiquités, brocante, galeries d'art (IDCC 1517).","Ce calculateur couvre les 6 principaux écarts entre la CCN IDCC 1517 (antiquités, brocante, galeries d'art) et le code du travail : indemnité de licenciement (formule 1\u002F5+2\u002F15), préavis par niveau (3 mois pour les cadres), grille salariale 9 niveaux (avenant n°14, mars 2025), prime d'ancienneté obligatoire (3 à 15 % pour les niveaux I-VI), jours de congés supplémentaires selon ancienneté (jusqu'à +5 jours), et heures supplémentaires majorées à 50 % dès la 40e heure.",[90,109],{"name":91,"@type":92,"about":93,"author":97,"@context":100,"isPartOf":101,"inLanguage":104,"description":105,"operatingSystem":106,"applicationCategory":107,"isAccessibleForFree":108},"Calculateur CCN Commerces de détail non alimentaires — Antiquités, Brocante, Galeries d'art (IDCC 1517)","WebApplication",{"name":94,"@type":95,"identifier":96},"Convention collective des commerces de détail non alimentaires : antiquités, brocante, galeries d'art","Thing","IDCC 1517",{"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","Outil interactif couvrant l'indemnité de licenciement, la durée du préavis, la grille salariale, la prime d'ancienneté, les congés supplémentaires et les heures supplémentaires de la convention collective des commerces de détail non alimentaires : antiquités, brocante, galeries d'art (IDCC 1517).","All","FinanceApplication",true,{"@type":110,"@context":100,"mainEntity":111},"FAQPage",[112,118,122],{"name":113,"@type":114,"acceptedAnswer":115},"Comment est calculée l'indemnité de licenciement dans la convention collective des commerces de détail non alimentaires (IDCC 1517) ?","Question",{"text":116,"@type":117},"La CCN IDCC 1517 prévoit une indemnité de licenciement calculée sur la base de 1\u002F5 de mois de salaire par année d'ancienneté pour les 10 premières années, et 2\u002F15 de mois par année au-delà de 10 ans. Toutefois, si le code du travail (art. L1234-9 : 1\u002F4 + 1\u002F3) est plus favorable, c'est ce dernier qui s'applique. En cas d'inaptitude professionnelle, l'indemnité est doublée.","Answer",{"name":119,"@type":114,"acceptedAnswer":120},"Quelle est la durée du préavis de licenciement pour les cadres dans la CCN antiquités, brocante ?",{"text":121,"@type":117},"Les cadres (niveaux VII à IX) bénéficient d'un préavis de 3 mois, plus favorable que les 2 mois prévus par le code du travail. Les employés (niveaux I à V) ont 1 mois sous 2 ans d'ancienneté et 2 mois au-delà.",{"name":123,"@type":114,"acceptedAnswer":124},"La prime d'ancienneté est-elle obligatoire dans la CCN IDCC 1517 ?",{"text":125,"@type":117},"Oui, la prime d'ancienneté est obligatoire pour les niveaux I à VI. Elle représente entre 3 % (après 3 ans) et 15 % (après 15 ans) du salaire minimum de niveau I, soit entre 54 € et 270 € mensuels bruts environ.",[127,129,132,135,138,141,144,147,150,153],{"a":128,"q":113},"La CCN IDCC 1517 prévoit une indemnité de licenciement calculée sur la base de 1\u002F5 de mois de salaire par année d'ancienneté pour les 10 premières années, et 2\u002F15 de mois par année au-delà de 10 ans. Toutefois, si le code du travail (art. L1234-9 : 1\u002F4 + 1\u002F3) est plus favorable, c'est ce dernier qui s'applique. En cas d'inaptitude professionnelle sans possibilité de reclassement, l'indemnité est doublée.",{"a":130,"q":131},"La durée de préavis varie selon le niveau de classification : les employés des niveaux I à V ont 1 mois s'ils ont moins de 2 ans d'ancienneté, et 2 mois au-delà. Le niveau VI (agent de maîtrise) bénéficie de 2 mois quel que soit l'ancienneté. Les cadres (niveaux VII à IX) ont droit à 3 mois de préavis, plus favorable que les 2 mois prévus par le code du travail. Pour les travailleurs handicapés (RQTH), la durée est doublée dans la limite de 3 mois.","Quelle est la durée du préavis de licenciement dans la CCN antiquités, brocante et galeries d'art ?",{"a":133,"q":134},"Suite à l'avenant n° 14 du 27 novembre 2024 (applicable au 1er mars 2025), la grille des salaires minima conventionnels comporte 9 niveaux : niveau I 1 802 €, niveau II 1 809 €, niveau III 1 814 €, niveau IV 1 839 €, niveau V 1 940 €, niveau VI 2 118 €, niveau VII 2 714 €, niveau VIII 3 548 €, niveau IX 3 994 € bruts mensuels (base 151,67 h\u002Fmois soit 35h\u002Fsemaine).","Quels sont les salaires minimums de la convention collective IDCC 1517 en 2025 ?",{"a":136,"q":137},"Oui, la CCN IDCC 1517 rend la prime d'ancienneté obligatoire pour les salariés des niveaux I à VI. Elle est calculée sur le salaire minimum de niveau I et progresse par paliers tous les 3 ans : 3 % après 3 ans, 6 % après 6 ans, 9 % après 9 ans, 12 % après 12 ans et 15 % à partir de 15 ans d'ancienneté. Elle est proratisée pour les temps partiels et figure distinctement sur le bulletin de salaire.","La prime d'ancienneté est-elle obligatoire dans la convention collective des commerces de détail non alimentaires ?",{"a":139,"q":140},"Oui, la CCN IDCC 1517 prévoit des jours de congés payés supplémentaires en fonction de l'ancienneté : 1 jour dès 10 ans, 2 jours à partir de 15 ans, 3 jours à partir de 20 ans, 4 jours à partir de 25 ans, et 5 jours supplémentaires pour les salariés ayant 30 ans ou plus d'ancienneté dans l'entreprise, portant le total annuel à 35 jours ouvrables.","Les salariés de la CCN antiquités, brocante bénéficient-ils de jours de congés supplémentaires ?",{"a":142,"q":143},"La convention collective IDCC 1517 prévoit une majoration de 25 % pour les 4 premières heures supplémentaires hebdomadaires (de la 36e à la 39e heure), et de 50 % à partir de la 40e heure. Cette dernière tranche est plus favorable que le code du travail qui ne prévoit la majoration de 50 % qu'à partir de la 44e heure. Le contingent annuel d'heures supplémentaires est fixé à 180 heures.","Comment sont majorées les heures supplémentaires dans la CCN IDCC 1517 ?",{"a":145,"q":146},"La CCN IDCC 1517 fixe des périodes d'essai inférieures aux maxima légaux : 2 mois non renouvelables pour le niveau I, 3 mois maximum pour les niveaux II à V, 4 mois pour le niveau VI, et 6 mois pour les cadres (niveaux VII à IX). Ces durées sont plus favorables que les maxima légaux (4, 6 et 8 mois respectivement).","Quelle est la durée maximale de la période d'essai dans la CCN antiquités, brocante et galeries d'art ?",{"a":148,"q":149},"Non, la CCN des commerces de détail non alimentaires (antiquités, brocante, galeries d'art) ne prévoit pas de 13e mois obligatoire au niveau de la branche. Cette gratification peut néanmoins être mise en place par accord d'entreprise ou par usage. En revanche, la prime d'ancienneté est obligatoire pour les niveaux I à VI.","La convention collective IDCC 1517 prévoit-elle un 13e mois ?",{"a":151,"q":152},"En cas de licenciement pour inaptitude d'origine professionnelle (accident du travail ou maladie professionnelle) sans possibilité de reclassement, la CCN IDCC 1517 prévoit que l'indemnité de licenciement conventionnelle est doublée. Le calcul de base reste 1\u002F5 × salaire mensuel × années ≤ 10 + 2\u002F15 × salaire × années > 10, puis ce montant est multiplié par 2.","Comment calculer l'indemnité de licenciement pour inaptitude dans la CCN 1517 ?",{"a":154,"q":155},"Le texte officiel de la convention collective des commerces de détail non alimentaires (antiquités, brocante, galeries d'art) IDCC 1517 est disponible sur Légifrance sous la référence KALICONT000005635870. Vous pouvez également consulter les contributions relatives à l'IDCC 1517 sur le site Code du Travail Numérique (code.travail.gouv.fr).","Où trouver le texte officiel de la convention collective IDCC 1517 ?","\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>Calculateur CCN Commerces de détail non alimentaires — Antiquités, Brocante, Galeries d'art (IDCC 1517)\u003C\u002Ftitle>\n  \u003Cscript src=\"https:\u002F\u002Funpkg.com\u002Flucide@latest\u002Fdist\u002Fumd\u002Flucide.min.js\">\u003C\u002Fscript>\n  \u003Cstyle>\n    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\n    :root {\n      --bg: #fafaf9;\n      --surface: #ffffff;\n      --border: #e7e5e4;\n      --accent: #2563eb;\n      --accent-light: #eff6ff;\n      --accent-hover: #1d4ed8;\n      --text: #1c1917;\n      --text-muted: #78716c;\n      --success: #16a34a;\n      --warning: #d97706;\n      --info-bg: #eff6ff;\n      --info-border: #bfdbfe;\n      --radius: 0.75rem;\n      --radius-sm: 0.5rem;\n    }\n    body {\n      font-family: system-ui, -apple-system, sans-serif;\n      background: var(--bg);\n      color: var(--text);\n      font-size: 0.9375rem;\n      line-height: 1.6;\n      padding: 1rem;\n    }\n    .tool-root { max-width: 700px; margin: 0 auto; }\n    .tool-header {\n      background: var(--surface);\n      border: 1px solid var(--border);\n      border-radius: var(--radius);\n      padding: 1.25rem 1.5rem;\n      margin-bottom: 1rem;\n    }\n    .tool-header-top {\n      display: flex;\n      justify-content: space-between;\n      align-items: flex-start;\n      gap: 1rem;\n      flex-wrap: wrap;\n    }\n    .tool-title {\n      font-size: 1.125rem;\n      font-weight: 700;\n      color: var(--text);\n    }\n    .tool-subtitle { font-size: 0.8125rem; color: var(--text-muted); margin-top: 0.25rem; }\n    .idcc-badge {\n      background: var(--accent);\n      color: white;\n      font-size: 0.75rem;\n      font-weight: 600;\n      padding: 0.25rem 0.75rem;\n      border-radius: 999px;\n      white-space: nowrap;\n      flex-shrink: 0;\n    }\n    \u002F* Tabs *\u002F\n    .tabs-nav {\n      display: flex;\n      gap: 0;\n      border-bottom: 2px solid var(--border);\n      margin-bottom: 1.25rem;\n      overflow-x: auto;\n      scrollbar-width: none;\n    }\n    .tabs-nav::-webkit-scrollbar { display: none; }\n    .tab-btn {\n      background: none;\n      border: none;\n      cursor: pointer;\n      padding: 0.625rem 1rem;\n      font-size: 0.8125rem;\n      font-weight: 500;\n      color: var(--text-muted);\n      border-bottom: 2px solid transparent;\n      margin-bottom: -2px;\n      white-space: nowrap;\n      display: flex;\n      align-items: center;\n      gap: 0.375rem;\n      transition: color 0.15s, border-color 0.15s;\n    }\n    .tab-btn:hover { color: var(--accent); }\n    .tab-btn.active {\n      color: var(--accent);\n      border-bottom-color: var(--accent);\n      font-weight: 600;\n    }\n    .tab-btn svg { width: 14px; height: 14px; }\n    .panel { display: none; }\n    .panel.active { display: block; }\n    \u002F* Card *\u002F\n    .card {\n      background: var(--surface);\n      border: 1px solid var(--border);\n      border-radius: var(--radius);\n      padding: 1.25rem 1.5rem;\n      margin-bottom: 1rem;\n    }\n    \u002F* Rule callout *\u002F\n    .rule-callout {\n      background: var(--info-bg);\n      border: 1px solid var(--info-border);\n      border-radius: var(--radius-sm);\n      padding: 0.875rem 1rem;\n      margin-bottom: 1.25rem;\n      display: flex;\n      gap: 0.625rem;\n      align-items: flex-start;\n    }\n    .rule-callout svg { width: 16px; height: 16px; color: var(--accent); flex-shrink: 0; margin-top: 0.125rem; }\n    .rule-callout p { font-size: 0.875rem; color: #1e40af; }\n    .rule-callout strong { font-weight: 600; }\n    \u002F* Form elements *\u002F\n    .field { margin-bottom: 1.125rem; }\n    .field label {\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n      font-size: 0.875rem;\n      font-weight: 500;\n      margin-bottom: 0.375rem;\n      color: var(--text);\n    }\n    .field label .val {\n      font-weight: 700;\n      color: var(--accent);\n      font-variant-numeric: tabular-nums;\n    }\n    input[type=range] {\n      width: 100%;\n      accent-color: var(--accent);\n      cursor: pointer;\n    }\n    select {\n      width: 100%;\n      padding: 0.5rem 0.75rem;\n      border: 1px solid var(--border);\n      border-radius: var(--radius-sm);\n      font-size: 0.875rem;\n      background: var(--surface);\n      color: var(--text);\n      cursor: pointer;\n    }\n    \u002F* Pills *\u002F\n    .pills { display: flex; gap: 0.5rem; flex-wrap: wrap; }\n    .pill {\n      padding: 0.375rem 0.875rem;\n      border: 1.5px solid var(--border);\n      border-radius: 999px;\n      font-size: 0.8125rem;\n      font-weight: 500;\n      cursor: pointer;\n      background: var(--surface);\n      color: var(--text-muted);\n      transition: all 0.15s;\n    }\n    .pill.active {\n      border-color: var(--accent);\n      background: var(--accent);\n      color: white;\n    }\n    \u002F* Toggle *\u002F\n    .toggle-row { display: flex; align-items: center; gap: 0.75rem; }\n    .toggle {\n      position: relative; width: 44px; height: 24px; flex-shrink: 0;\n    }\n    .toggle input { opacity: 0; width: 0; height: 0; }\n    .toggle-track {\n      position: absolute; inset: 0;\n      background: var(--border);\n      border-radius: 999px;\n      cursor: pointer;\n      transition: background 0.2s;\n    }\n    .toggle input:checked + .toggle-track { background: var(--accent); }\n    .toggle-track::after {\n      content: '';\n      position: absolute;\n      left: 3px; top: 3px;\n      width: 18px; height: 18px;\n      background: white;\n      border-radius: 50%;\n      transition: transform 0.2s;\n    }\n    .toggle input:checked + .toggle-track::after { transform: translateX(20px); }\n    .toggle-label { font-size: 0.875rem; font-weight: 500; }\n    \u002F* Result card *\u002F\n    .result-card {\n      background: linear-gradient(135deg, #eff6ff 0%, #f0fdf4 100%);\n      border: 1.5px solid var(--accent);\n      border-radius: var(--radius);\n      padding: 1.25rem 1.5rem;\n      margin-top: 1.25rem;\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n      gap: 1rem;\n      flex-wrap: wrap;\n    }\n    .result-label { font-size: 0.875rem; color: var(--text-muted); font-weight: 500; }\n    .result-value {\n      font-size: 1.75rem;\n      font-weight: 800;\n      color: var(--accent);\n      font-variant-numeric: tabular-nums;\n    }\n    .result-sub { font-size: 0.8rem; color: var(--text-muted); margin-top: 0.125rem; }\n    \u002F* Table *\u002F\n    .mini-table { width: 100%; border-collapse: collapse; font-size: 0.8125rem; margin-top: 0.75rem; }\n    .mini-table th, .mini-table td { padding: 0.4rem 0.625rem; text-align: left; border-bottom: 1px solid var(--border); }\n    .mini-table th { color: var(--text-muted); font-weight: 600; }\n    .mini-table tr.hl td { font-weight: 700; color: var(--accent); background: var(--accent-light); }\n    \u002F* Section heading *\u002F\n    .section-heading {\n      font-size: 0.8125rem;\n      font-weight: 600;\n      color: var(--text-muted);\n      text-transform: uppercase;\n      letter-spacing: 0.05em;\n      margin-bottom: 0.75rem;\n    }\n    \u002F* Disclaimer *\u002F\n    .disclaimer {\n      font-size: 0.78rem;\n      color: var(--text-muted);\n      text-align: center;\n      padding: 1rem 1.5rem;\n      border-top: 1px solid var(--border);\n      margin-top: 1rem;\n    }\n    .disclaimer a { color: var(--accent); text-decoration: none; }\n    .disclaimer a:hover { text-decoration: underline; }\n    \u002F* Divider *\u002F\n    .divider { border: none; border-top: 1px solid var(--border); margin: 1rem 0; }\n    \u002F* Alert less-favorable *\u002F\n    .alert-warn {\n      background: #fffbeb;\n      border: 1px solid #fde68a;\n      border-radius: var(--radius-sm);\n      padding: 0.625rem 0.875rem;\n      font-size: 0.8125rem;\n      color: #92400e;\n      margin-top: 0.75rem;\n      display: flex;\n      gap: 0.5rem;\n      align-items: flex-start;\n    }\n    .alert-warn svg { width: 14px; height: 14px; flex-shrink: 0; margin-top: 0.125rem; }\n  \u003C\u002Fstyle>\n\u003C\u002Fhead>\n\u003Cbody>\n\u003C!-- CCN IDCC 1517 — deviations vs code du travail\n     indemnite: L1234-9 → 1\u002F5 × mois × années (≤10) + 2\u002F15 × mois × années (>10) vs baseline 1\u002F4 + 1\u002F3\n     preavis: L1234-1 → niveaux I-V 1→2 mois; niveau VI 2 mois; niveaux VII-IX 3 mois\n     salaire-min: grille 9 niveaux, avenant n°14 du 27\u002F11\u002F2024 en vigueur 01\u002F03\u002F2025\n     prime-anciennete: 3%-15% du salaire niveau I, tous les 3 ans, niveaux I-VI\n     conges: jusqu'à 5 jours supplémentaires selon ancienneté (10\u002F15\u002F20\u002F25\u002F30 ans)\n     heures-supp: 50% à partir de la 40e h (vs 44e h dans le code du travail)\n     Source: Légifrance KALICONT000005635870 \u002F avenants + code.travail.gouv.fr contributions IDCC 1517 -->\n\n\u003Cmain class=\"tool-root\">\n  \u003Cdiv class=\"tool-header\">\n    \u003Cdiv class=\"tool-header-top\">\n      \u003Cdiv>\n        \u003Cdiv class=\"tool-title\">CCN Antiquités, Brocante &amp; Galeries d'art\u003C\u002Fdiv>\n        \u003Cdiv class=\"tool-subtitle\">Convention collective des commerces de détail non alimentaires\u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n      \u003Cspan class=\"idcc-badge\">IDCC 1517\u003C\u002Fspan>\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\n  \u003Cdiv class=\"card\">\n    \u003Cnav class=\"tabs-nav\" role=\"tablist\">\n      \u003Cbutton class=\"tab-btn\" data-tab=\"indemnite\" role=\"tab\" aria-selected=\"false\">\n        \u003Ci data-lucide=\"banknote\">\u003C\u002Fi>Indemnité\n      \u003C\u002Fbutton>\n      \u003Cbutton class=\"tab-btn\" data-tab=\"preavis\" role=\"tab\" aria-selected=\"false\">\n        \u003Ci data-lucide=\"clock\">\u003C\u002Fi>Préavis\n      \u003C\u002Fbutton>\n      \u003Cbutton class=\"tab-btn\" data-tab=\"salaire-min\" role=\"tab\" aria-selected=\"false\">\n        \u003Ci data-lucide=\"bar-chart-2\">\u003C\u002Fi>Grille salariale\n      \u003C\u002Fbutton>\n      \u003Cbutton class=\"tab-btn\" data-tab=\"prime-anciennete\" role=\"tab\" aria-selected=\"false\">\n        \u003Ci data-lucide=\"award\">\u003C\u002Fi>Prime ancienneté\n      \u003C\u002Fbutton>\n      \u003Cbutton class=\"tab-btn\" data-tab=\"conges\" role=\"tab\" aria-selected=\"false\">\n        \u003Ci data-lucide=\"calendar\">\u003C\u002Fi>Congés\n      \u003C\u002Fbutton>\n      \u003Cbutton class=\"tab-btn\" data-tab=\"heures-supp\" role=\"tab\" aria-selected=\"false\">\n        \u003Ci data-lucide=\"trending-up\">\u003C\u002Fi>Heures supp\n      \u003C\u002Fbutton>\n    \u003C\u002Fnav>\n\n    \u003C!-- ══════════════════════════════════════════\n         PANEL 1 — INDEMNITÉ DE LICENCIEMENT\n    ══════════════════════════════════════════════ -->\n    \u003Cdiv class=\"panel\" data-panel=\"indemnite\">\n      \u003Cdiv class=\"rule-callout\">\n        \u003Ci data-lucide=\"info\">\u003C\u002Fi>\n        \u003Cp>La CCN IDCC 1517 prévoit une formule spécifique : \u003Cstrong>1\u002F5 de mois × années (≤ 10 ans) + 2\u002F15 de mois × années (> 10 ans)\u003C\u002Fstrong>. Le code du travail (L1234-9) retient 1\u002F4 + 1\u002F3, plus favorable aux salariés anciens. L'employeur doit appliquer la règle la plus favorable.\u003C\u002Fp>\n      \u003C\u002Fdiv>\n\n      \u003Cdiv class=\"field\">\n        \u003Clabel>Salaire brut mensuel de référence \u003Cspan class=\"val\" id=\"ind-sal-val\">2 500 €\u003C\u002Fspan>\u003C\u002Flabel>\n        \u003Cinput type=\"range\" id=\"ind-sal\" min=\"1802\" max=\"8000\" value=\"2500\" step=\"10\">\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"field\">\n        \u003Clabel>Ancienneté \u003Cspan class=\"val\" id=\"ind-anc-val\">5 ans\u003C\u002Fspan>\u003C\u002Flabel>\n        \u003Cinput type=\"range\" id=\"ind-anc\" min=\"1\" max=\"35\" value=\"5\" step=\"1\">\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"field\">\n        \u003Cdiv class=\"section-heading\">Motif du licenciement\u003C\u002Fdiv>\n        \u003Cdiv class=\"pills\">\n          \u003Cbutton class=\"pill active\" data-group=\"ind-motif\" data-val=\"standard\">Motif personnel \u002F éco.\u003C\u002Fbutton>\n          \u003Cbutton class=\"pill\" data-group=\"ind-motif\" data-val=\"inaptitude\">Inaptitude professionnelle\u003C\u002Fbutton>\n        \u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n\n      \u003Cdiv class=\"result-card\" id=\"ind-result\">\n        \u003Cdiv>\n          \u003Cdiv class=\"result-label\">Indemnité conventionnelle (IDCC 1517)\u003C\u002Fdiv>\n          \u003Cdiv class=\"result-value\" id=\"ind-amount\">—\u003C\u002Fdiv>\n          \u003Cdiv class=\"result-sub\" id=\"ind-note\">\u003C\u002Fdiv>\n        \u003C\u002Fdiv>\n        \u003Ci data-lucide=\"calculator\" style=\"width:32px;height:32px;color:#93c5fd;flex-shrink:0\">\u003C\u002Fi>\n      \u003C\u002Fdiv>\n\n      \u003Cdiv class=\"alert-warn\" id=\"ind-warn\" style=\"display:none\">\n        \u003Ci data-lucide=\"alert-triangle\">\u003C\u002Fi>\n        \u003Cspan id=\"ind-warn-text\">\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n\n      \u003Ctable class=\"mini-table\" style=\"margin-top:1rem\">\n        \u003Cthead>\u003Ctr>\u003Cth>Ancienneté\u003C\u002Fth>\u003Cth>Formule CCN\u003C\u002Fth>\u003Cth>Montant estimé\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n        \u003Ctbody id=\"ind-table\">\u003C\u002Ftbody>\n      \u003C\u002Ftable>\n    \u003C\u002Fdiv>\n\n    \u003C!-- ══════════════════════════════════════════\n         PANEL 2 — PRÉAVIS\n    ══════════════════════════════════════════════ -->\n    \u003Cdiv class=\"panel\" data-panel=\"preavis\">\n      \u003Cdiv class=\"rule-callout\">\n        \u003Ci data-lucide=\"info\">\u003C\u002Fi>\n        \u003Cp>La CCN IDCC 1517 définit des durées de préavis par niveau. Les \u003Cstrong>niveaux VII-IX (cadres)\u003C\u002Fstrong> bénéficient de \u003Cstrong>3 mois\u003C\u002Fstrong>, contre 2 mois légaux. Les \u003Cstrong>travailleurs handicapés\u003C\u002Fstrong> ont un préavis doublé, plafonné à 3 mois.\u003C\u002Fp>\n      \u003C\u002Fdiv>\n\n      \u003Cdiv class=\"field\">\n        \u003Cdiv class=\"section-heading\">Niveau de classification\u003C\u002Fdiv>\n        \u003Cdiv class=\"pills\">\n          \u003Cbutton class=\"pill active\" data-group=\"pre-niveau\" data-val=\"I-V\">Niveaux I à V (employés)\u003C\u002Fbutton>\n          \u003Cbutton class=\"pill\" data-group=\"pre-niveau\" data-val=\"VI\">Niveau VI (agent maîtrise)\u003C\u002Fbutton>\n          \u003Cbutton class=\"pill\" data-group=\"pre-niveau\" data-val=\"VII-IX\">Niveaux VII–IX (cadres)\u003C\u002Fbutton>\n        \u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n\n      \u003Cdiv class=\"field\" id=\"pre-anc-field\">\n        \u003Clabel>Ancienneté \u003Cspan class=\"val\" id=\"pre-anc-val\">1 an\u003C\u002Fspan>\u003C\u002Flabel>\n        \u003Cinput type=\"range\" id=\"pre-anc\" min=\"0\" max=\"30\" value=\"1\" step=\"1\">\n      \u003C\u002Fdiv>\n\n      \u003Cdiv class=\"field\">\n        \u003Cdiv class=\"toggle-row\">\n          \u003Clabel class=\"toggle\">\n            \u003Cinput type=\"checkbox\" id=\"pre-handicap\">\n            \u003Cspan class=\"toggle-track\">\u003C\u002Fspan>\n          \u003C\u002Flabel>\n          \u003Cspan class=\"toggle-label\">Travailleur reconnu handicapé (RQTH)\u003C\u002Fspan>\n        \u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n\n      \u003Cdiv class=\"result-card\">\n        \u003Cdiv>\n          \u003Cdiv class=\"result-label\">Durée de préavis (licenciement)\u003C\u002Fdiv>\n          \u003Cdiv class=\"result-value\" id=\"pre-duration\">—\u003C\u002Fdiv>\n          \u003Cdiv class=\"result-sub\" id=\"pre-note\">\u003C\u002Fdiv>\n        \u003C\u002Fdiv>\n        \u003Ci data-lucide=\"clock\" style=\"width:32px;height:32px;color:#93c5fd;flex-shrink:0\">\u003C\u002Fi>\n      \u003C\u002Fdiv>\n\n      \u003Ctable class=\"mini-table\" style=\"margin-top:1rem\">\n        \u003Cthead>\u003Ctr>\u003Cth>Niveau\u003C\u002Fth>\u003Cth>Ancienneté\u003C\u002Fth>\u003Cth>Préavis CCN\u003C\u002Fth>\u003Cth>Légal\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n        \u003Ctbody>\n          \u003Ctr>\u003Ctd>I-V (employés)\u003C\u002Ftd>\u003Ctd>&lt; 2 ans\u003C\u002Ftd>\u003Ctd>1 mois\u003C\u002Ftd>\u003Ctd>1 mois\u003C\u002Ftd>\u003C\u002Ftr>\n          \u003Ctr>\u003Ctd>I-V (employés)\u003C\u002Ftd>\u003Ctd>≥ 2 ans\u003C\u002Ftd>\u003Ctd>2 mois\u003C\u002Ftd>\u003Ctd>2 mois\u003C\u002Ftd>\u003C\u002Ftr>\n          \u003Ctr>\u003Ctd>VI (maîtrise)\u003C\u002Ftd>\u003Ctd>Toute\u003C\u002Ftd>\u003Ctd>2 mois\u003C\u002Ftd>\u003Ctd>2 mois\u003C\u002Ftd>\u003C\u002Ftr>\n          \u003Ctr>\u003Ctd>VII-IX (cadres)\u003C\u002Ftd>\u003Ctd>Toute\u003C\u002Ftd>\u003Ctd>\u003Cstrong>3 mois\u003C\u002Fstrong>\u003C\u002Ftd>\u003Ctd>2 mois\u003C\u002Ftd>\u003C\u002Ftr>\n        \u003C\u002Ftbody>\n      \u003C\u002Ftable>\n    \u003C\u002Fdiv>\n\n    \u003C!-- ══════════════════════════════════════════\n         PANEL 3 — GRILLE SALARIALE\n    ══════════════════════════════════════════════ -->\n    \u003Cdiv class=\"panel\" data-panel=\"salaire-min\">\n      \u003Cdiv class=\"rule-callout\">\n        \u003Ci data-lucide=\"info\">\u003C\u002Fi>\n        \u003Cp>La grille conventionnelle IDCC 1517 comprend \u003Cstrong>9 niveaux\u003C\u002Fstrong> avec des minima supérieurs au SMIC dès le niveau 2. Avenant n° 14 du 27\u002F11\u002F2024, en vigueur au 1er mars 2025 (base 151,67 h\u002Fmois).\u003C\u002Fp>\n      \u003C\u002Fdiv>\n\n      \u003Cdiv class=\"field\">\n        \u003Cdiv class=\"section-heading\">Niveau de classification\u003C\u002Fdiv>\n        \u003Cselect id=\"sal-niveau\">\n          \u003Coption value=\"1\">Niveau I — Employé débutant (≤ 6 mois)\u003C\u002Foption>\n          \u003Coption value=\"2\">Niveau II — Employé\u003C\u002Foption>\n          \u003Coption value=\"3\">Niveau III — Employé qualifié\u003C\u002Foption>\n          \u003Coption value=\"4\">Niveau IV — Employé confirmé\u003C\u002Foption>\n          \u003Coption value=\"5\" selected>Niveau V — Employé senior\u003C\u002Foption>\n          \u003Coption value=\"6\">Niveau VI — Agent de maîtrise\u003C\u002Foption>\n          \u003Coption value=\"7\">Niveau VII — Cadre\u003C\u002Foption>\n          \u003Coption value=\"8\">Niveau VIII — Cadre confirmé\u003C\u002Foption>\n          \u003Coption value=\"9\">Niveau IX — Cadre supérieur\u003C\u002Foption>\n        \u003C\u002Fselect>\n      \u003C\u002Fdiv>\n\n      \u003Cdiv class=\"field\">\n        \u003Clabel>Heures hebdomadaires \u003Cspan class=\"val\" id=\"sal-h-val\">35 h\u003C\u002Fspan>\u003C\u002Flabel>\n        \u003Cinput type=\"range\" id=\"sal-h\" min=\"24\" max=\"44\" value=\"35\" step=\"1\">\n      \u003C\u002Fdiv>\n\n      \u003Cdiv class=\"result-card\">\n        \u003Cdiv>\n          \u003Cdiv class=\"result-label\">Salaire minimum brut mensuel\u003C\u002Fdiv>\n          \u003Cdiv class=\"result-value\" id=\"sal-amount\">—\u003C\u002Fdiv>\n          \u003Cdiv class=\"result-sub\" id=\"sal-note\">\u003C\u002Fdiv>\n        \u003C\u002Fdiv>\n        \u003Ci data-lucide=\"bar-chart-2\" style=\"width:32px;height:32px;color:#93c5fd;flex-shrink:0\">\u003C\u002Fi>\n      \u003C\u002Fdiv>\n\n      \u003Ctable class=\"mini-table\" style=\"margin-top:1rem\">\n        \u003Cthead>\u003Ctr>\u003Cth>Niveau\u003C\u002Fth>\u003Cth>Salaire brut mensuel (35h)\u003C\u002Fth>\u003Cth>Catégorie\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n        \u003Ctbody>\n          \u003Ctr>\u003Ctd>I\u003C\u002Ftd>\u003Ctd>1 802 €\u003C\u002Ftd>\u003Ctd>Débutant\u003C\u002Ftd>\u003C\u002Ftr>\n          \u003Ctr>\u003Ctd>II\u003C\u002Ftd>\u003Ctd>1 809 €\u003C\u002Ftd>\u003Ctd>Employé\u003C\u002Ftd>\u003C\u002Ftr>\n          \u003Ctr>\u003Ctd>III\u003C\u002Ftd>\u003Ctd>1 814 €\u003C\u002Ftd>\u003Ctd>Employé qualifié\u003C\u002Ftd>\u003C\u002Ftr>\n          \u003Ctr>\u003Ctd>IV\u003C\u002Ftd>\u003Ctd>1 839 €\u003C\u002Ftd>\u003Ctd>Employé confirmé\u003C\u002Ftd>\u003C\u002Ftr>\n          \u003Ctr>\u003Ctd>V\u003C\u002Ftd>\u003Ctd>1 940 €\u003C\u002Ftd>\u003Ctd>Employé senior\u003C\u002Ftd>\u003C\u002Ftr>\n          \u003Ctr>\u003Ctd>VI\u003C\u002Ftd>\u003Ctd>2 118 €\u003C\u002Ftd>\u003Ctd>Agent de maîtrise\u003C\u002Ftd>\u003C\u002Ftr>\n          \u003Ctr>\u003Ctd>VII\u003C\u002Ftd>\u003Ctd>2 714 €\u003C\u002Ftd>\u003Ctd>Cadre\u003C\u002Ftd>\u003C\u002Ftr>\n          \u003Ctr>\u003Ctd>VIII\u003C\u002Ftd>\u003Ctd>3 548 €\u003C\u002Ftd>\u003Ctd>Cadre confirmé\u003C\u002Ftd>\u003C\u002Ftr>\n          \u003Ctr>\u003Ctd>IX\u003C\u002Ftd>\u003Ctd>3 994 €\u003C\u002Ftd>\u003Ctd>Cadre supérieur\u003C\u002Ftd>\u003C\u002Ftr>\n        \u003C\u002Ftbody>\n      \u003C\u002Ftable>\n    \u003C\u002Fdiv>\n\n    \u003C!-- ══════════════════════════════════════════\n         PANEL 4 — PRIME D'ANCIENNETÉ\n    ══════════════════════════════════════════════ -->\n    \u003Cdiv class=\"panel\" data-panel=\"prime-anciennete\">\n      \u003Cdiv class=\"rule-callout\">\n        \u003Ci data-lucide=\"info\">\u003C\u002Fi>\n        \u003Cp>La CCN IDCC 1517 impose une \u003Cstrong>prime d'ancienneté obligatoire\u003C\u002Fstrong> pour les niveaux I à VI. Elle est calculée sur le salaire minimum de niveau I et progresse de \u003Cstrong>3 % tous les 3 ans\u003C\u002Fstrong>, jusqu'à 15 % à 15 ans d'ancienneté.\u003C\u002Fp>\n      \u003C\u002Fdiv>\n\n      \u003Cdiv class=\"field\">\n        \u003Cdiv class=\"section-heading\">Niveau de classification\u003C\u002Fdiv>\n        \u003Cdiv class=\"pills\">\n          \u003Cbutton class=\"pill active\" data-group=\"pa-niveau\" data-val=\"eligible\">Niveaux I à VI (éligible)\u003C\u002Fbutton>\n          \u003Cbutton class=\"pill\" data-group=\"pa-niveau\" data-val=\"non-eligible\">Niveaux VII à IX (cadres)\u003C\u002Fbutton>\n        \u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n\n      \u003Cdiv class=\"field\">\n        \u003Clabel>Ancienneté \u003Cspan class=\"val\" id=\"pa-anc-val\">6 ans\u003C\u002Fspan>\u003C\u002Flabel>\n        \u003Cinput type=\"range\" id=\"pa-anc\" min=\"0\" max=\"20\" value=\"6\" step=\"1\">\n      \u003C\u002Fdiv>\n\n      \u003Cdiv class=\"field\">\n        \u003Cdiv class=\"toggle-row\">\n          \u003Clabel class=\"toggle\">\n            \u003Cinput type=\"checkbox\" id=\"pa-partiel\">\n            \u003Cspan class=\"toggle-track\">\u003C\u002Fspan>\n          \u003C\u002Flabel>\n          \u003Cspan class=\"toggle-label\">Temps partiel (prorata)\u003C\u002Fspan>\n        \u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"field\" id=\"pa-tpartiel-field\" style=\"display:none\">\n        \u003Clabel>Quotité de temps de travail \u003Cspan class=\"val\" id=\"pa-tpartiel-val\">80 %\u003C\u002Fspan>\u003C\u002Flabel>\n        \u003Cinput type=\"range\" id=\"pa-tpartiel\" min=\"20\" max=\"99\" value=\"80\" step=\"1\">\n      \u003C\u002Fdiv>\n\n      \u003Cdiv class=\"result-card\">\n        \u003Cdiv>\n          \u003Cdiv class=\"result-label\">Prime d'ancienneté brute mensuelle\u003C\u002Fdiv>\n          \u003Cdiv class=\"result-value\" id=\"pa-amount\">—\u003C\u002Fdiv>\n          \u003Cdiv class=\"result-sub\" id=\"pa-note\">\u003C\u002Fdiv>\n        \u003C\u002Fdiv>\n        \u003Ci data-lucide=\"award\" style=\"width:32px;height:32px;color:#93c5fd;flex-shrink:0\">\u003C\u002Fi>\n      \u003C\u002Fdiv>\n\n      \u003Ctable class=\"mini-table\" style=\"margin-top:1rem\">\n        \u003Cthead>\u003Ctr>\u003Cth>Ancienneté\u003C\u002Fth>\u003Cth>Taux\u003C\u002Fth>\u003Cth>Prime mensuelle (base niv. I)\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n        \u003Ctbody>\n          \u003Ctr>\u003Ctd>&lt; 3 ans\u003C\u002Ftd>\u003Ctd>0 %\u003C\u002Ftd>\u003Ctd>0 €\u003C\u002Ftd>\u003C\u002Ftr>\n          \u003Ctr>\u003Ctd>3 ans\u003C\u002Ftd>\u003Ctd>3 %\u003C\u002Ftd>\u003Ctd>≈ 54 €\u003C\u002Ftd>\u003C\u002Ftr>\n          \u003Ctr>\u003Ctd>6 ans\u003C\u002Ftd>\u003Ctd>6 %\u003C\u002Ftd>\u003Ctd>≈ 108 €\u003C\u002Ftd>\u003C\u002Ftr>\n          \u003Ctr>\u003Ctd>9 ans\u003C\u002Ftd>\u003Ctd>9 %\u003C\u002Ftd>\u003Ctd>≈ 162 €\u003C\u002Ftd>\u003C\u002Ftr>\n          \u003Ctr>\u003Ctd>12 ans\u003C\u002Ftd>\u003Ctd>12 %\u003C\u002Ftd>\u003Ctd>≈ 216 €\u003C\u002Ftd>\u003C\u002Ftr>\n          \u003Ctr>\u003Ctd>15 ans\u003C\u002Ftd>\u003Ctd>15 %\u003C\u002Ftd>\u003Ctd>≈ 270 €\u003C\u002Ftd>\u003C\u002Ftr>\n        \u003C\u002Ftbody>\n      \u003C\u002Ftable>\n    \u003C\u002Fdiv>\n\n    \u003C!-- ══════════════════════════════════════════\n         PANEL 5 — CONGÉS SUPPLÉMENTAIRES\n    ══════════════════════════════════════════════ -->\n    \u003Cdiv class=\"panel\" data-panel=\"conges\">\n      \u003Cdiv class=\"rule-callout\">\n        \u003Ci data-lucide=\"info\">\u003C\u002Fi>\n        \u003Cp>En sus des 30 jours ouvrables légaux, la CCN IDCC 1517 octroie des \u003Cstrong>jours de congés supplémentaires selon l'ancienneté\u003C\u002Fstrong> : jusqu'à 5 jours additionnels pour les salariés ayant 30 ans ou plus dans l'entreprise.\u003C\u002Fp>\n      \u003C\u002Fdiv>\n\n      \u003Cdiv class=\"field\">\n        \u003Clabel>Ancienneté dans l'entreprise \u003Cspan class=\"val\" id=\"cg-anc-val\">12 ans\u003C\u002Fspan>\u003C\u002Flabel>\n        \u003Cinput type=\"range\" id=\"cg-anc\" min=\"0\" max=\"35\" value=\"12\" step=\"1\">\n      \u003C\u002Fdiv>\n\n      \u003Cdiv class=\"field\">\n        \u003Cdiv class=\"toggle-row\">\n          \u003Clabel class=\"toggle\">\n            \u003Cinput type=\"checkbox\" id=\"cg-partiel\">\n            \u003Cspan class=\"toggle-track\">\u003C\u002Fspan>\n          \u003C\u002Flabel>\n          \u003Cspan class=\"toggle-label\">Travail à temps partiel\u003C\u002Fspan>\n        \u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n\n      \u003Cdiv class=\"result-card\">\n        \u003Cdiv>\n          \u003Cdiv class=\"result-label\">Total congés annuels (jours ouvrables)\u003C\u002Fdiv>\n          \u003Cdiv class=\"result-value\" id=\"cg-total\">—\u003C\u002Fdiv>\n          \u003Cdiv class=\"result-sub\" id=\"cg-note\">\u003C\u002Fdiv>\n        \u003C\u002Fdiv>\n        \u003Ci data-lucide=\"calendar\" style=\"width:32px;height:32px;color:#93c5fd;flex-shrink:0\">\u003C\u002Fi>\n      \u003C\u002Fdiv>\n\n      \u003Ctable class=\"mini-table\" style=\"margin-top:1rem\">\n        \u003Cthead>\u003Ctr>\u003Cth>Ancienneté\u003C\u002Fth>\u003Cth>Jours supplémentaires\u003C\u002Fth>\u003Cth>Total (légal + CCN)\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n        \u003Ctbody>\n          \u003Ctr>\u003Ctd>&lt; 10 ans\u003C\u002Ftd>\u003Ctd>0 jour\u003C\u002Ftd>\u003Ctd>30 jours\u003C\u002Ftd>\u003C\u002Ftr>\n          \u003Ctr>\u003Ctd>10 – 14 ans\u003C\u002Ftd>\u003Ctd>+1 jour\u003C\u002Ftd>\u003Ctd>31 jours\u003C\u002Ftd>\u003C\u002Ftr>\n          \u003Ctr>\u003Ctd>15 – 19 ans\u003C\u002Ftd>\u003Ctd>+2 jours\u003C\u002Ftd>\u003Ctd>32 jours\u003C\u002Ftd>\u003C\u002Ftr>\n          \u003Ctr>\u003Ctd>20 – 24 ans\u003C\u002Ftd>\u003Ctd>+3 jours\u003C\u002Ftd>\u003Ctd>33 jours\u003C\u002Ftd>\u003C\u002Ftr>\n          \u003Ctr>\u003Ctd>25 – 29 ans\u003C\u002Ftd>\u003Ctd>+4 jours\u003C\u002Ftd>\u003Ctd>34 jours\u003C\u002Ftd>\u003C\u002Ftr>\n          \u003Ctr>\u003Ctd>≥ 30 ans\u003C\u002Ftd>\u003Ctd>+5 jours\u003C\u002Ftd>\u003Ctd>35 jours\u003C\u002Ftd>\u003C\u002Ftr>\n        \u003C\u002Ftbody>\n      \u003C\u002Ftable>\n    \u003C\u002Fdiv>\n\n    \u003C!-- ══════════════════════════════════════════\n         PANEL 6 — HEURES SUPPLÉMENTAIRES\n    ══════════════════════════════════════════════ -->\n    \u003Cdiv class=\"panel\" data-panel=\"heures-supp\">\n      \u003Cdiv class=\"rule-callout\">\n        \u003Ci data-lucide=\"info\">\u003C\u002Fi>\n        \u003Cp>La CCN IDCC 1517 majore les heures supplémentaires à \u003Cstrong>50 % dès la 40e heure\u003C\u002Fstrong> hebdomadaire (vs la 44e heure dans le code du travail L3121-36). Le contingent annuel est fixé à \u003Cstrong>180 heures\u003C\u002Fstrong>.\u003C\u002Fp>\n      \u003C\u002Fdiv>\n\n      \u003Cdiv class=\"field\">\n        \u003Clabel>Salaire horaire brut \u003Cspan class=\"val\" id=\"hs-th-val\">14,00 €\u002Fh\u003C\u002Fspan>\u003C\u002Flabel>\n        \u003Cinput type=\"range\" id=\"hs-th\" min=\"11.88\" max=\"40\" value=\"14\" step=\"0.5\">\n      \u003C\u002Fdiv>\n\n      \u003Cdiv class=\"field\">\n        \u003Clabel>Heures supplémentaires hebdomadaires (36e à …) \u003Cspan class=\"val\" id=\"hs-tot-val\">5 h\u003C\u002Fspan>\u003C\u002Flabel>\n        \u003Cinput type=\"range\" id=\"hs-tot\" min=\"1\" max=\"20\" value=\"5\" step=\"1\">\n      \u003C\u002Fdiv>\n\n      \u003Cdiv class=\"result-card\">\n        \u003Cdiv>\n          \u003Cdiv class=\"result-label\">Majoration brute hebdomadaire\u003C\u002Fdiv>\n          \u003Cdiv class=\"result-value\" id=\"hs-amount\">—\u003C\u002Fdiv>\n          \u003Cdiv class=\"result-sub\" id=\"hs-note\">\u003C\u002Fdiv>\n        \u003C\u002Fdiv>\n        \u003Ci data-lucide=\"trending-up\" style=\"width:32px;height:32px;color:#93c5fd;flex-shrink:0\">\u003C\u002Fi>\n      \u003C\u002Fdiv>\n\n      \u003Ctable class=\"mini-table\" style=\"margin-top:1rem\">\n        \u003Cthead>\u003Ctr>\u003Cth>Tranche\u003C\u002Fth>\u003Cth>Majoration CCN\u003C\u002Fth>\u003Cth>Majoration légale\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n        \u003Ctbody>\n          \u003Ctr>\u003Ctd>36e – 39e heure (1 à 4 h supp)\u003C\u002Ftd>\u003Ctd>+25 %\u003C\u002Ftd>\u003Ctd>+25 %\u003C\u002Ftd>\u003C\u002Ftr>\n          \u003Ctr>\u003Ctd>40e heure et au-delà\u003C\u002Ftd>\u003Ctd>\u003Cstrong>+50 %\u003C\u002Fstrong>\u003C\u002Ftd>\u003Ctd>+25 % (jusqu'à h43)\u003C\u002Ftd>\u003C\u002Ftr>\n          \u003Ctr>\u003Ctd>Au-delà du contingent (180 h\u002Fan)\u003C\u002Ftd>\u003Ctd>Repos compensateur\u003C\u002Ftd>\u003Ctd>Repos compensateur\u003C\u002Ftd>\u003C\u002Ftr>\n        \u003C\u002Ftbody>\n      \u003C\u002Ftable>\n    \u003C\u002Fdiv>\n\n    \u003C!-- Shared disclaimer -->\n    \u003Chr class=\"divider\">\n    \u003Cp class=\"disclaimer\">\n      Calcul indicatif basé sur la CCN IDCC 1517 — Commerces de détail non alimentaires : antiquités, brocante, galeries d'art.\n      Source : \u003Ca href=\"https:\u002F\u002Fwww.legifrance.gouv.fr\u002Fconv_coll\u002Fid\u002FKALICONT000005635870\u002F\" target=\"_blank\" rel=\"noopener\">Légifrance KALICONT000005635870\u003C\u002Fa>.\n      Pour toute validation légale\n    \u003C\u002Fp>\n  \u003C\u002Fdiv>\n\u003C\u002Fmain>\n\n\u003Cscript>\n(function () {\n  'use strict';\n\n  \u002F\u002F ── Format helpers ──────────────────────────────────────────────\n  const fmtEur = v => new Intl.NumberFormat('fr-FR', { style: 'currency', currency: 'EUR', maximumFractionDigits: 0 }).format(v);\n  const fmtEurDec = v => new Intl.NumberFormat('fr-FR', { style: 'currency', currency: 'EUR', minimumFractionDigits: 2, maximumFractionDigits: 2 }).format(v);\n\n  \u002F\u002F ── State ───────────────────────────────────────────────────────\n  const state = {\n    indemnite: { sal: 2500, anc: 5, motif: 'standard' },\n    preavis:   { niveau: 'I-V', anc: 1, handicap: false },\n    salaireMin:{ niveau: 5, heures: 35 },\n    primeAnc:  { eligible: true, anc: 6, partiel: false, quotite: 80 },\n    conges:    { anc: 12, partiel: false },\n    heuresSupp:{ th: 14, tot: 5 }\n  };\n\n  \u002F\u002F ── Salary grid (base 35h) ──────────────────────────────────────\n  const GRID = [0, 1802, 1809, 1814, 1839, 1940, 2118, 2714, 3548, 3994];\n\n  \u002F\u002F ── Pill group handler ──────────────────────────────────────────\n  document.querySelectorAll('.pill').forEach(pill => {\n    pill.addEventListener('click', () => {\n      const group = pill.dataset.group;\n      document.querySelectorAll(`[data-group=\"${group}\"]`).forEach(p => p.classList.remove('active'));\n      pill.classList.add('active');\n      if (group === 'ind-motif') { state.indemnite.motif = pill.dataset.val; computeIndemnite(); }\n      if (group === 'pre-niveau') { state.preavis.niveau = pill.dataset.val; computePreavis(); }\n      if (group === 'pa-niveau')  { state.primeAnc.eligible = pill.dataset.val === 'eligible'; computePrime(); }\n    });\n  });\n\n  \u002F\u002F ── Range + display helpers ─────────────────────────────────────\n  function wire(id, displayId, fmt, onchange) {\n    const el = document.getElementById(id);\n    const disp = document.getElementById(displayId);\n    el.addEventListener('input', () => { disp.textContent = fmt(el.value); onchange(+el.value); });\n    disp.textContent = fmt(el.value);\n  }\n\n  \u002F\u002F ── INDEMNITÉ ───────────────────────────────────────────────────\n  wire('ind-sal', 'ind-sal-val', v => fmtEur(+v), v => { state.indemnite.sal = v; computeIndemnite(); });\n  wire('ind-anc', 'ind-anc-val', v => `${v} an${+v > 1 ? 's' : ''}`, v => { state.indemnite.anc = v; computeIndemnite(); });\n\n  function computeIndemnite() {\n    const { sal, anc, motif } = state.indemnite;\n    if (anc \u003C 0.67) { \u002F\u002F \u003C 8 months\n      document.getElementById('ind-amount').textContent = '—';\n      document.getElementById('ind-note').textContent = 'Ancienneté insuffisante (\u003C 8 mois)';\n      return;\n    }\n    \u002F\u002F CCN 1517 formula: 1\u002F5 × sal × min(anc,10) + 2\u002F15 × sal × max(anc-10,0)\n    const a1 = Math.min(anc, 10);\n    const a2 = Math.max(anc - 10, 0);\n    let ccn = (1\u002F5) * sal * a1 + (2\u002F15) * sal * a2;\n    \u002F\u002F Baseline L1234-9: 1\u002F4 × sal × min(anc,10) + 1\u002F3 × sal × max(anc-10,0)\n    const legal = (1\u002F4) * sal * a1 + (1\u002F3) * sal * a2;\n    \u002F\u002F Apply more favorable\n    const result = Math.max(ccn, legal);\n    const isCCN = ccn >= legal;\n\n    if (motif === 'inaptitude') { ccn = ccn * 2; }\n    const finalResult = motif === 'inaptitude' ? Math.max(ccn, legal) : result;\n\n    document.getElementById('ind-amount').textContent = fmtEur(finalResult);\n    document.getElementById('ind-note').textContent =\n      motif === 'inaptitude'\n        ? 'Doublé pour inaptitude professionnelle sans reclassement'\n        : (isCCN ? 'Base CCN 1517 (1\u002F5 + 2\u002F15)' : 'Code du travail appliqué (plus favorable)');\n\n    \u002F\u002F Warning when legal > CCN\n    const warnEl = document.getElementById('ind-warn');\n    const warnTxt = document.getElementById('ind-warn-text');\n    if (!isCCN && motif !== 'inaptitude') {\n      warnEl.style.display = 'flex';\n      warnTxt.textContent = `Le code du travail (L1234-9) est plus favorable : ${fmtEur(legal)} vs ${fmtEur(ccn)} CCN. L'employeur doit appliquer le montant le plus élevé.`;\n    } else {\n      warnEl.style.display = 'none';\n    }\n\n    \u002F\u002F Mini table\n    const tbody = document.getElementById('ind-table');\n    tbody.innerHTML = '';\n    [1, 3, 5, 10, 15, 20, 25].forEach(y => {\n      const ya1 = Math.min(y, 10), ya2 = Math.max(y - 10, 0);\n      const ccnAmt = (1\u002F5) * sal * ya1 + (2\u002F15) * sal * ya2;\n      const legalAmt = (1\u002F4) * sal * ya1 + (1\u002F3) * sal * ya2;\n      const best = Math.max(ccnAmt, legalAmt);\n      const isHL = y === anc;\n      tbody.innerHTML += `\u003Ctr class=\"${isHL ? 'hl' : ''}\">\n        \u003Ctd>${y} an${y > 1 ? 's' : ''}\u003C\u002Ftd>\n        \u003Ctd>${y \u003C= 10 ? '1\u002F5 × sal × ' + y : '(1\u002F5×10 + 2\u002F15×' + (y-10) + ') × sal'}\u003C\u002Ftd>\n        \u003Ctd>${fmtEur(best)}\u003C\u002Ftd>\n      \u003C\u002Ftr>`;\n    });\n  }\n\n  \u002F\u002F ── PRÉAVIS ─────────────────────────────────────────────────────\n  wire('pre-anc', 'pre-anc-val', v => `${v} an${+v > 1 ? 's' : ''}`, v => { state.preavis.anc = +v; computePreavis(); });\n  document.getElementById('pre-handicap').addEventListener('change', e => {\n    state.preavis.handicap = e.target.checked;\n    computePreavis();\n  });\n\n  function computePreavis() {\n    const { niveau, anc, handicap } = state.preavis;\n    let months = 0;\n    if (niveau === 'I-V') {\n      months = anc \u003C 2 ? 1 : 2;\n    } else if (niveau === 'VI') {\n      months = 2;\n    } else { \u002F\u002F VII-IX cadres\n      months = 3;\n    }\n    if (handicap) months = Math.min(months * 2, 3);\n\n    document.getElementById('pre-duration').textContent = `${months} mois`;\n    document.getElementById('pre-note').textContent =\n      handicap ? 'Durée doublée (RQTH), plafonnée à 3 mois' : `Préavis conventionnel IDCC 1517 — ${niveau === 'VII-IX' ? 'plus favorable que le légal (2 mois)' : 'conforme au code du travail'}`;\n  }\n\n  \u002F\u002F ── SALAIRE MIN ─────────────────────────────────────────────────\n  wire('sal-h', 'sal-h-val', v => `${v} h`, v => { state.salaireMin.heures = +v; computeSalaire(); });\n  document.getElementById('sal-niveau').addEventListener('change', e => {\n    state.salaireMin.niveau = +e.target.value;\n    computeSalaire();\n  });\n\n  function computeSalaire() {\n    const { niveau, heures } = state.salaireMin;\n    const base35 = GRID[niveau];\n    const adjusted = heures === 35 ? base35 : Math.round(base35 * (heures \u002F 35));\n    document.getElementById('sal-amount').textContent = fmtEur(adjusted);\n    const smicMensuel = 1802;\n    const pctSmic = ((adjusted \u002F smicMensuel - 1) * 100).toFixed(1);\n    document.getElementById('sal-note').textContent =\n      adjusted > smicMensuel\n        ? `+${pctSmic} % au-dessus du SMIC (${fmtEur(smicMensuel)}) — base ${heures}h\u002Fsemaine`\n        : `Conforme SMIC — base ${heures}h\u002Fsemaine`;\n  }\n\n  \u002F\u002F ── PRIME ANCIENNETÉ ────────────────────────────────────────────\n  wire('pa-anc', 'pa-anc-val', v => `${v} an${+v > 1 ? 's' : ''}`, v => { state.primeAnc.anc = +v; computePrime(); });\n  wire('pa-tpartiel', 'pa-tpartiel-val', v => `${v} %`, v => { state.primeAnc.quotite = +v; computePrime(); });\n  document.getElementById('pa-partiel').addEventListener('change', e => {\n    state.primeAnc.partiel = e.target.checked;\n    document.getElementById('pa-tpartiel-field').style.display = e.target.checked ? 'block' : 'none';\n    computePrime();\n  });\n\n  const PRIME_BASE_NI = 1802; \u002F\u002F Salaire min niveau I (2025)\n  function getPrimeTaux(anc) {\n    if (anc \u003C 3)  return 0;\n    if (anc \u003C 6)  return 3;\n    if (anc \u003C 9)  return 6;\n    if (anc \u003C 12) return 9;\n    if (anc \u003C 15) return 12;\n    return 15;\n  }\n\n  function computePrime() {\n    const { eligible, anc, partiel, quotite } = state.primeAnc;\n    if (!eligible) {\n      document.getElementById('pa-amount').textContent = 'Non applicable';\n      document.getElementById('pa-note').textContent = 'Les cadres (niveaux VII-IX) ne bénéficient pas de la prime d\\'ancienneté CCN 1517';\n      return;\n    }\n    const taux = getPrimeTaux(anc);\n    let prime = (taux \u002F 100) * PRIME_BASE_NI;\n    if (partiel) prime = prime * (quotite \u002F 100);\n    document.getElementById('pa-amount').textContent = taux === 0 ? '0 €' : fmtEurDec(prime);\n    document.getElementById('pa-note').textContent = taux === 0\n      ? 'Ancienneté insuffisante (\u003C 3 ans) — prime non acquise'\n      : `Taux ${taux} % × base niveau I (${fmtEur(PRIME_BASE_NI)})${partiel ? ` × ${quotite} % (temps partiel)` : ''}`;\n  }\n\n  \u002F\u002F ── CONGÉS ──────────────────────────────────────────────────────\n  wire('cg-anc', 'cg-anc-val', v => `${v} an${+v > 1 ? 's' : ''}`, v => { state.conges.anc = +v; computeConges(); });\n  document.getElementById('cg-partiel').addEventListener('change', e => {\n    state.conges.partiel = e.target.checked;\n    computeConges();\n  });\n\n  function getCongesExtra(anc) {\n    if (anc >= 30) return 5;\n    if (anc >= 25) return 4;\n    if (anc >= 20) return 3;\n    if (anc >= 15) return 2;\n    if (anc >= 10) return 1;\n    return 0;\n  }\n\n  function computeConges() {\n    const { anc, partiel } = state.conges;\n    const extra = getCongesExtra(anc);\n    const total = 30 + extra;\n    document.getElementById('cg-total').textContent = `${total} jours ouvrables`;\n    document.getElementById('cg-note').textContent =\n      extra > 0\n        ? `30 jours légaux + ${extra} jour${extra > 1 ? 's' : ''} ancienneté CCN 1517${partiel ? ' (temps partiel : prorata)' : ''}`\n        : `30 jours légaux — aucun jour supplémentaire CCN avant 10 ans d'ancienneté${partiel ? ' (temps partiel)' : ''}`;\n  }\n\n  \u002F\u002F ── HEURES SUPP ─────────────────────────────────────────────────\n  wire('hs-th', 'hs-th-val', v => `${parseFloat(v).toFixed(2).replace('.', ',')} €\u002Fh`, v => { state.heuresSupp.th = +v; computeHS(); });\n  wire('hs-tot', 'hs-tot-val', v => `${v} h`, v => { state.heuresSupp.tot = +v; computeHS(); });\n\n  function computeHS() {\n    const { th, tot } = state.heuresSupp;\n    \u002F\u002F Tranches: 1-4h = 25%, 5h+ = 50%\n    const t25 = Math.min(tot, 4); \u002F\u002F h36-h39 (1st to 4th overtime hour)\n    const t50 = Math.max(tot - 4, 0); \u002F\u002F h40+ (50% from 5th overtime hour = h40)\n    const majoration = th * t25 * 0.25 + th * t50 * 0.50;\n    const salHeures = th * tot + majoration;\n    document.getElementById('hs-amount').textContent = fmtEurDec(majoration);\n    document.getElementById('hs-note').textContent =\n      `${t25} h × +25 % = ${fmtEurDec(th * t25 * 0.25)}` +\n      (t50 > 0 ? ` + ${t50} h × +50 % = ${fmtEurDec(th * t50 * 0.50)}` : '') +\n      ` | Total heures + majorations : ${fmtEurDec(salHeures)}`;\n  }\n\n  \u002F\u002F ── TABS ────────────────────────────────────────────────────────\n  const tabs   = document.querySelectorAll('[data-tab]');\n  const panels = document.querySelectorAll('[data-panel]');\n\n  function activate(id) {\n    tabs.forEach(t => {\n      const active = t.dataset.tab === id;\n      t.classList.toggle('active', active);\n      t.setAttribute('aria-selected', active);\n    });\n    panels.forEach(p => p.classList.toggle('active', p.dataset.panel === id));\n    if (location.hash !== '#' + id) location.hash = id;\n    requestAnimationFrame(() => window.dispatchEvent(new Event('resize')));\n  }\n\n  tabs.forEach(t => t.addEventListener('click', () => activate(t.dataset.tab)));\n\n  const hashTab = location.hash.slice(1);\n  const firstTab = tabs[0] && tabs[0].dataset.tab;\n  const target = hashTab && document.querySelector(`[data-tab=\"${hashTab}\"]`) ? hashTab : firstTab;\n  activate(target);\n\n  \u002F\u002F ── INITIAL COMPUTE ─────────────────────────────────────────────\n  computeIndemnite();\n  computePreavis();\n  computeSalaire();\n  computePrime();\n  computeConges();\n  computeHS();\n\n  \u002F\u002F ── LUCIDE ICONS ────────────────────────────────────────────────\n  if (window.lucide) lucide.createIcons();\n\n  \u002F\u002F ── RESIZE OBSERVER ─────────────────────────────────────────────\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  window.addEventListener('resize', () => {\n    const h = Math.max(document.documentElement.scrollHeight, document.body.scrollHeight);\n    parent.postMessage({ type: 'resize', height: h }, '*');\n  });\n})();\n\u003C\u002Fscript>\n\u003C\u002Fbody>\n\u003C\u002Fhtml>\n","generated","juridique","consumer","both","https:\u002F\u002Fpub-bdebbd2dad294475a2da0eb657815b6b.r2.dev\u002Ftools\u002Fccn-commerces-de-detail-non-alimentaires-antiquites-ee010e0220.webp",[]]