[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"footer-root-categories-fr-FR":3,"tool-content-ccn-detaillants-en-chaussures-fr":83,"footer-cities-fr":140},[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":134,"source":135,"category":136,"audience":137,"publish_mode":138,"hero_image":139,"hero_image_alt":85},"ccn-detaillants-en-chaussures","CCN des détaillants en chaussures — calculateur complet","Calculateur CCN Détaillants en Chaussures IDCC 733 | Expert Zoom","Outil interactif couvrant l'indemnité de licenciement, la grille salariale, la prime d'ancienneté et les congés supplémentaires de la CCN des détaillants en chaussures (IDCC 733).","Ce calculateur couvre les 4 principaux points de déviation de la convention collective des détaillants en chaussures (IDCC 733) par rapport au code du travail : l'indemnité de licenciement (comparaison formule CCN vs légale), la grille salariale conventionnelle (Avenant n°105, 9 catégories), la prime d'ancienneté obligatoire (3 % à 15 %) et les jours de congés supplémentaires d'ancienneté (+1 à +4 jours).",[90],{"name":91,"@type":92,"about":93,"author":97,"@context":100,"isPartOf":101,"inLanguage":104,"description":105,"operatingSystem":106,"applicationCategory":107,"isAccessibleForFree":108},"Calculateur CCN Détaillants en Chaussures — IDCC 733","WebApplication",{"name":94,"@type":95,"identifier":96},"Convention collective nationale des détaillants en chaussures","Thing","IDCC 733",{"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 grille salariale, la prime d'ancienneté et les congés supplémentaires de la convention collective des détaillants en chaussures (IDCC 733).","All","FinanceApplication",true,[110,113,116,119,122,125,128,131],{"a":111,"q":112},"La CCN IDCC 733 prévoit une formule de 1\u002F5 de mois de salaire par année d'ancienneté pour les 10 premières années, puis 2\u002F15 de mois au-delà. Cependant, la formule légale (art. L1234-9 : 1\u002F4 + 1\u002F3) étant plus favorable, c'est celle-ci qui s'applique en pratique. Le salarié doit justifier d'au moins 8 mois d'ancienneté, hors faute grave ou lourde.","Comment calculer l'indemnité de licenciement dans la convention collective des détaillants en chaussures ?",{"a":114,"q":115},"Depuis l'Avenant n°105 du 16 décembre 2024, la grille comprend 9 catégories (base 35h\u002Fsemaine) : catégorie 1 à 1 803 €, catégorie 2 à 1 816 €, catégorie 3 à 1 851 €, catégorie 4 à 1 920 €, catégorie 5 à 2 018 €, catégorie 6 à 2 390 €, catégorie 7 à 2 692 €, catégorie 8 à 3 710 €, catégorie 9 à 4 280 €.","Quels sont les salaires minima de la convention collective chaussures IDCC 733 en 2025 ?",{"a":117,"q":118},"Oui. La CCN IDCC 733 institue une prime d'ancienneté obligatoire, calculée en pourcentage du salaire minimum conventionnel : 3 % à partir de 3 ans, 6 % à 6 ans, 9 % à 9 ans, 12 % à 12 ans et 15 % à 15 ans d'ancienneté. Elle doit figurer séparément sur le bulletin de salaire.","La CCN détaillants en chaussures prévoit-elle une prime d'ancienneté ?",{"a":120,"q":121},"Au-delà des 30 jours ouvrables légaux, la CCN accorde des jours supplémentaires d'ancienneté : +1 jour à partir de 10 ans, +2 jours à 20 ans, +3 jours à 25 ans et +4 jours à 30 ans d'ancienneté dans l'entreprise.","Combien de jours de congés payés prévoient la CCN des détaillants en chaussures ?",{"a":123,"q":124},"En cas d'inaptitude d'origine professionnelle (accident du travail ou maladie professionnelle), l'indemnité de licenciement est effectivement doublée en vertu de l'article L1226-14 du code du travail. Cette règle s'applique à toutes les CCN, dont l'IDCC 733.","L'indemnité de licenciement est-elle doublée en cas d'inaptitude dans la CCN 733 ?",{"a":126,"q":127},"La CCN des détaillants en chaussures prévoit un supplément de 10 % pour la maîtrise d'une première langue étrangère, et +5 % par langue supplémentaire. Ce bonus s'ajoute au taux d'ancienneté applicable.","Quelle est la prime d'ancienneté pour la maîtrise d'une langue étrangère dans la CCN chaussures ?",{"a":129,"q":130},"Non. La convention collective des détaillants en chaussures ne prévoit pas de 13ème mois ni de prime de fin d'année obligatoire au niveau branche. Cet avantage peut néanmoins être négocié au niveau de l'entreprise par accord collectif.","La CCN IDCC 733 prévoit-elle un 13ème mois ?",{"a":132,"q":133},"La CCN IDCC 733 ne déroge pas au code du travail sur les heures supplémentaires. Les majorations légales s'appliquent : 25 % pour les 8 premières heures supplémentaires (au-delà de 35h) et 50 % au-delà, sauf accord d'entreprise fixant un minimum de 10 %.","Quelles sont les heures supplémentaires dans la CCN détaillants en chaussures ?","\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 Détaillants en Chaussures IDCC 733\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-dark: #1d4ed8;\n      --text: #1c1917;\n      --muted: #78716c;\n      --success-bg: #f0fdf4;\n      --success-border: #bbf7d0;\n      --success-text: #15803d;\n      --warning-bg: #fffbeb;\n      --warning-border: #fde68a;\n      --warning-text: #92400e;\n      --info-bg: #eff6ff;\n      --info-border: #bfdbfe;\n      --info-text: #1e40af;\n      --radius: 0.75rem;\n      --radius-sm: 0.375rem;\n      font-size: 15px;\n    }\n    body { background: var(--bg); font-family: system-ui, -apple-system, sans-serif; color: var(--text); padding: 1rem; }\n    .tool-root { max-width: 680px; margin: 0 auto; }\n    .tool-header { margin-bottom: 1.25rem; }\n    .tool-header h1 { font-size: 1.2rem; font-weight: 700; line-height: 1.3; }\n    .tool-header .badge { display: inline-flex; align-items: center; gap: 0.3rem; background: var(--accent-light); color: var(--accent); font-size: 0.75rem; font-weight: 600; padding: 0.2rem 0.5rem; border-radius: 999px; margin-top: 0.4rem; }\n    \u002F* Tabs *\u002F\n    .tabs-bar { display: flex; gap: 0.25rem; border-bottom: 2px solid var(--border); margin-bottom: 1.25rem; overflow-x: auto; scrollbar-width: none; }\n    .tabs-bar::-webkit-scrollbar { display: none; }\n    .tab-btn { flex-shrink: 0; background: none; border: none; cursor: pointer; padding: 0.5rem 0.85rem; font-size: 0.82rem; font-weight: 600; color: var(--muted); border-bottom: 2px solid transparent; margin-bottom: -2px; display: flex; align-items: center; gap: 0.35rem; transition: color .15s, border-color .15s; white-space: nowrap; }\n    .tab-btn:hover { color: var(--accent); }\n    .tab-btn.active { color: var(--accent); border-bottom-color: var(--accent); }\n    .tab-btn svg { width: 14px; height: 14px; }\n    \u002F* Panels *\u002F\n    .panel { display: none; }\n    .panel.active { display: block; }\n    \u002F* Rule callout *\u002F\n    .rule-callout { display: flex; gap: 0.6rem; align-items: flex-start; background: var(--info-bg); border: 1px solid var(--info-border); border-radius: var(--radius-sm); padding: 0.75rem 1rem; margin-bottom: 1rem; }\n    .rule-callout svg { flex-shrink: 0; width: 16px; height: 16px; color: var(--accent); margin-top: 2px; }\n    .rule-callout p { font-size: 0.82rem; color: var(--info-text); line-height: 1.5; }\n    .rule-callout strong { font-weight: 700; }\n    \u002F* Form elements *\u002F\n    .form-group { margin-bottom: 1rem; }\n    .form-group label { display: block; font-size: 0.8rem; font-weight: 600; color: var(--muted); margin-bottom: 0.35rem; text-transform: uppercase; letter-spacing: 0.04em; }\n    .form-group .value-display { font-size: 0.9rem; font-weight: 700; color: var(--accent); font-variant-numeric: tabular-nums; }\n    input[type=range] { -webkit-appearance: none; width: 100%; height: 6px; background: var(--border); border-radius: 999px; outline: none; }\n    input[type=range]::-webkit-slider-thumb { -webkit-appearance: none; width: 18px; height: 18px; background: var(--accent); border-radius: 50%; cursor: pointer; border: 2px solid white; box-shadow: 0 1px 3px rgba(0,0,0,.2); }\n    input[type=range]::-moz-range-thumb { width: 18px; height: 18px; background: var(--accent); border-radius: 50%; cursor: pointer; border: 2px solid white; box-shadow: 0 1px 3px rgba(0,0,0,.2); }\n    select { width: 100%; border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 0.5rem 0.75rem; font-size: 0.9rem; color: var(--text); background: var(--surface); cursor: pointer; }\n    select:focus { outline: 2px solid var(--accent); outline-offset: 1px; }\n    \u002F* Pills *\u002F\n    .pills { display: flex; flex-wrap: wrap; gap: 0.4rem; }\n    .pill { background: var(--surface); border: 1.5px solid var(--border); border-radius: 999px; padding: 0.3rem 0.75rem; font-size: 0.8rem; font-weight: 600; cursor: pointer; color: var(--muted); transition: all .15s; }\n    .pill.active { background: var(--accent); border-color: var(--accent); color: #fff; }\n    \u002F* Result card *\u002F\n    .result-card { background: var(--success-bg); border: 1.5px solid var(--success-border); border-radius: var(--radius); padding: 1rem 1.25rem; margin-top: 1.25rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }\n    .result-card .result-label { font-size: 0.8rem; font-weight: 600; color: var(--success-text); text-transform: uppercase; letter-spacing: 0.04em; }\n    .result-card .result-value { font-size: 1.5rem; font-weight: 800; color: var(--success-text); font-variant-numeric: tabular-nums; }\n    .result-card .result-sub { font-size: 0.75rem; color: var(--success-text); opacity: 0.75; margin-top: 0.15rem; }\n    \u002F* Result rows for multi-value *\u002F\n    .result-rows { background: var(--success-bg); border: 1.5px solid var(--success-border); border-radius: var(--radius); padding: 1rem 1.25rem; margin-top: 1.25rem; }\n    .result-rows .result-row { display: flex; justify-content: space-between; align-items: center; padding: 0.4rem 0; border-bottom: 1px solid var(--success-border); font-size: 0.88rem; }\n    .result-rows .result-row:last-child { border-bottom: none; }\n    .result-rows .result-row .rr-label { color: var(--success-text); font-weight: 500; }\n    .result-rows .result-row .rr-val { font-weight: 700; color: var(--success-text); font-variant-numeric: tabular-nums; }\n    .result-rows .result-row.total { font-size: 1rem; font-weight: 800; margin-top: 0.25rem; padding-top: 0.6rem; border-top: 2px solid var(--success-border); border-bottom: none; }\n    \u002F* Salary grid table *\u002F\n    .salary-table { width: 100%; border-collapse: collapse; font-size: 0.82rem; margin-top: 0.5rem; }\n    .salary-table th { background: var(--accent-light); color: var(--accent); font-weight: 700; padding: 0.4rem 0.6rem; text-align: left; }\n    .salary-table td { padding: 0.4rem 0.6rem; border-bottom: 1px solid var(--border); }\n    .salary-table tr.highlighted td { background: var(--accent-light); font-weight: 700; color: var(--accent); }\n    \u002F* Disclaimer *\u002F\n    .disclaimer { font-size: 0.72rem; color: var(--muted); border-top: 1px solid var(--border); padding-top: 0.75rem; margin-top: 1.5rem; line-height: 1.6; }\n    .disclaimer a { color: var(--accent); text-decoration: none; }\n    .disclaimer a:hover { text-decoration: underline; }\n    \u002F* Grid toggle for congés *\u002F\n    .toggle-row { display: flex; align-items: center; gap: 0.75rem; }\n    .toggle-label { font-size: 0.85rem; color: var(--text); }\n    .toggle-btn { position: relative; display: inline-block; width: 42px; height: 24px; }\n    .toggle-btn input { opacity: 0; width: 0; height: 0; }\n    .toggle-slider { position: absolute; inset: 0; background: var(--border); border-radius: 999px; cursor: pointer; transition: .2s; }\n    .toggle-slider::before { content: ''; position: absolute; width: 18px; height: 18px; left: 3px; top: 3px; background: white; border-radius: 50%; transition: .2s; }\n    input:checked + .toggle-slider { background: var(--accent); }\n    input:checked + .toggle-slider::before { transform: translateX(18px); }\n    \u002F* Congés info *\u002F\n    .conges-info { background: var(--warning-bg); border: 1px solid var(--warning-border); border-radius: var(--radius-sm); padding: 0.65rem 1rem; margin-top: 0.75rem; font-size: 0.8rem; color: var(--warning-text); line-height: 1.5; }\n  \u003C\u002Fstyle>\n\u003C\u002Fhead>\n\u003Cbody>\n\u003C!-- CCN IDCC 733 — deviations:\n     indemnite: L1234-9 → CCN uses 1\u002F5 mois\u002Fan + 2\u002F15 au-delà 10 ans (toutefois, si moins favorable que loi, la loi s'applique)\n     salaire-min: SMIC → grille conventionnelle 9 catégories, Avenant n°105 du 16 décembre 2024\n     prime-anciennete: pas de base légale → CCN art. prime ancienneté: 3% à 15% par paliers de 3 ans\n     conges: L3141-3 (30j ouvrables) → CCN ajoute 1-4 jours d'ancienneté selon 10\u002F20\u002F25\u002F30 ans\n-->\n\u003Cmain class=\"tool-root\">\n  \u003Cdiv class=\"tool-header\">\n    \u003Ch1>Calculateur — CCN des détaillants en chaussures\u003C\u002Fh1>\n    \u003Cdiv class=\"badge\">\n      \u003Ci data-lucide=\"shield-check\">\u003C\u002Fi> IDCC 733\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\n  \u003Cdiv class=\"tabs-bar\" role=\"tablist\">\n    \u003Cbutton class=\"tab-btn\" data-tab=\"indemnite\" role=\"tab\" aria-selected=\"false\">\n      \u003Ci data-lucide=\"calculator\">\u003C\u002Fi> Indemnité\n    \u003C\u002Fbutton>\n    \u003Cbutton class=\"tab-btn\" data-tab=\"salaire-min\" role=\"tab\" aria-selected=\"false\">\n      \u003Ci data-lucide=\"trending-up\">\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 d'ancienneté\n    \u003C\u002Fbutton>\n    \u003Cbutton class=\"tab-btn\" data-tab=\"conges\" role=\"tab\" aria-selected=\"false\">\n      \u003Ci data-lucide=\"sun\">\u003C\u002Fi> Congés\n    \u003C\u002Fbutton>\n  \u003C\u002Fdiv>\n\n  \u003C!-- ===== PANEL: INDEMNITÉ ===== -->\n  \u003Cdiv class=\"panel\" data-panel=\"indemnite\">\n    \u003Cdiv class=\"rule-callout\">\n      \u003Ci data-lucide=\"info\">\u003C\u002Fi>\n      \u003Cp>La CCN IDCC 733 prévoit une formule de \u003Cstrong>1\u002F5 de mois par année ≤ 10 ans + 2\u002F15 de mois par année > 10 ans\u003C\u002Fstrong>. Toutefois, la loi (art. L1234-9 : 1\u002F4 + 1\u002F3) étant plus favorable, le calcul retient automatiquement le \u003Cstrong>montant le plus élevé\u003C\u002Fstrong> en faveur du salarié.\u003C\u002Fp>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"form-group\">\n      \u003Clabel>Salaire brut mensuel de référence\u003C\u002Flabel>\n      \u003Cdiv class=\"value-display\" id=\"ind-salary-display\">2 500 €\u003C\u002Fdiv>\n      \u003Cinput type=\"range\" id=\"ind-salary\" min=\"1400\" max=\"8000\" step=\"50\" value=\"2500\">\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"form-group\">\n      \u003Clabel>Ancienneté (années complètes)\u003C\u002Flabel>\n      \u003Cdiv class=\"value-display\" id=\"ind-seniority-display\">5 ans\u003C\u002Fdiv>\n      \u003Cinput type=\"range\" id=\"ind-seniority\" min=\"1\" max=\"40\" step=\"1\" value=\"5\">\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"form-group\">\n      \u003Clabel>Motif de rupture\u003C\u002Flabel>\n      \u003Cdiv class=\"pills\" id=\"ind-motif\">\n        \u003Cbutton class=\"pill active\" data-val=\"licenciement\">Licenciement\u003C\u002Fbutton>\n        \u003Cbutton class=\"pill\" data-val=\"inaptitude\">Inaptitude\u003C\u002Fbutton>\n        \u003Cbutton class=\"pill\" data-val=\"retraite\">Départ en retraite\u003C\u002Fbutton>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"result-rows\" id=\"ind-result\">\n      \u003Cdiv class=\"result-row\">\n        \u003Cspan class=\"rr-label\">Formule CCN (1\u002F5 + 2\u002F15)\u003C\u002Fspan>\n        \u003Cspan class=\"rr-val\" id=\"ind-ccn-val\">—\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"result-row\">\n        \u003Cspan class=\"rr-label\">Formule légale (1\u002F4 + 1\u002F3)\u003C\u002Fspan>\n        \u003Cspan class=\"rr-val\" id=\"ind-legal-val\">—\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"result-row total\">\n        \u003Cspan class=\"rr-label\">Montant retenu (plus favorable)\u003C\u002Fspan>\n        \u003Cspan class=\"rr-val\" id=\"ind-total-val\">—\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\n  \u003C!-- ===== PANEL: SALAIRE MIN ===== -->\n  \u003Cdiv class=\"panel\" data-panel=\"salaire-min\">\n    \u003Cdiv class=\"rule-callout\">\n      \u003Ci data-lucide=\"info\">\u003C\u002Fi>\n      \u003Cp>La CCN établit une \u003Cstrong>grille de 9 catégories\u003C\u002Fstrong> (employés, agents de maîtrise, cadres) avec des minima conventionnels supérieurs au SMIC. Valeurs issues de l'\u003Cstrong>Avenant n°105\u003C\u002Fstrong> du 16 décembre 2024 (base 35h\u002Fsemaine).\u003C\u002Fp>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"form-group\">\n      \u003Clabel>Catégorie\u003C\u002Flabel>\n      \u003Cselect id=\"sal-category\">\n        \u003Coption value=\"1\">Catégorie 1 — Employé(e)s (1 803 €)\u003C\u002Foption>\n        \u003Coption value=\"2\">Catégorie 2 — Employé(e)s (1 816 €)\u003C\u002Foption>\n        \u003Coption value=\"3\" selected>Catégorie 3 — Employé(e)s (1 851 €)\u003C\u002Foption>\n        \u003Coption value=\"4\">Catégorie 4 — Employé(e)s (1 920 €)\u003C\u002Foption>\n        \u003Coption value=\"5\">Catégorie 5 — Agents de maîtrise (2 018 €)\u003C\u002Foption>\n        \u003Coption value=\"6\">Catégorie 6 — Agents de maîtrise (2 390 €)\u003C\u002Foption>\n        \u003Coption value=\"7\">Catégorie 7 — Cadres (2 692 €)\u003C\u002Foption>\n        \u003Coption value=\"8\">Catégorie 8 — Cadres (3 710 €)\u003C\u002Foption>\n        \u003Coption value=\"9\">Catégorie 9 — Cadres (4 280 €)\u003C\u002Foption>\n      \u003C\u002Fselect>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"form-group\">\n      \u003Clabel>Heures hebdomadaires\u003C\u002Flabel>\n      \u003Cdiv class=\"value-display\" id=\"sal-hours-display\">35h \u002F semaine\u003C\u002Fdiv>\n      \u003Cinput type=\"range\" id=\"sal-hours\" min=\"20\" max=\"44\" step=\"0.5\" value=\"35\">\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"result-rows\" id=\"sal-result\">\n      \u003Cdiv class=\"result-row\">\n        \u003Cspan class=\"rr-label\">Salaire minimum conventionnel\u003C\u002Fspan>\n        \u003Cspan class=\"rr-val\" id=\"sal-conv-val\">—\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"result-row\">\n        \u003Cspan class=\"rr-label\">SMIC mensuel (2025)\u003C\u002Fspan>\n        \u003Cspan class=\"rr-val\" id=\"sal-smic-val\">—\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"result-row total\">\n        \u003Cspan class=\"rr-label\">Minimum applicable\u003C\u002Fspan>\n        \u003Cspan class=\"rr-val\" id=\"sal-total-val\">—\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\n    \u003Ctable class=\"salary-table\" id=\"sal-table\" style=\"margin-top:1rem\">\n      \u003Cthead>\n        \u003Ctr>\u003Cth>Cat.\u003C\u002Fth>\u003Cth>Statut\u003C\u002Fth>\u003Cth>Min. mensuel (35h)\u003C\u002Fth>\u003C\u002Ftr>\n      \u003C\u002Fthead>\n      \u003Ctbody>\u003C\u002Ftbody>\n    \u003C\u002Ftable>\n  \u003C\u002Fdiv>\n\n  \u003C!-- ===== PANEL: PRIME D'ANCIENNETÉ ===== -->\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 733 institue une \u003Cstrong>prime d'ancienneté obligatoire\u003C\u002Fstrong> (non prévue par le code du travail). Elle est calculée en pourcentage du salaire minimum conventionnel garanti : \u003Cstrong>3 % dès 3 ans, jusqu'à 15 % à 15 ans\u003C\u002Fstrong>. Elle doit figurer sur le bulletin de paie.\u003C\u002Fp>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"form-group\">\n      \u003Clabel>Salaire brut mensuel\u003C\u002Flabel>\n      \u003Cdiv class=\"value-display\" id=\"anc-salary-display\">1 900 €\u003C\u002Fdiv>\n      \u003Cinput type=\"range\" id=\"anc-salary\" min=\"1400\" max=\"6000\" step=\"50\" value=\"1900\">\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"form-group\">\n      \u003Clabel>Ancienneté (années complètes)\u003C\u002Flabel>\n      \u003Cdiv class=\"value-display\" id=\"anc-seniority-display\">6 ans\u003C\u002Fdiv>\n      \u003Cinput type=\"range\" id=\"anc-seniority\" min=\"0\" max=\"30\" step=\"1\" value=\"6\">\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"form-group\">\n      \u003Clabel>Maîtrise d'une langue étrangère\u003C\u002Flabel>\n      \u003Cdiv class=\"pills\" id=\"anc-lang\">\n        \u003Cbutton class=\"pill active\" data-val=\"0\">Aucune\u003C\u002Fbutton>\n        \u003Cbutton class=\"pill\" data-val=\"1\">1 langue (+10%)\u003C\u002Fbutton>\n        \u003Cbutton class=\"pill\" data-val=\"2\">2 langues (+15%)\u003C\u002Fbutton>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"result-rows\" id=\"anc-result\">\n      \u003Cdiv class=\"result-row\">\n        \u003Cspan class=\"rr-label\">Taux d'ancienneté applicable\u003C\u002Fspan>\n        \u003Cspan class=\"rr-val\" id=\"anc-rate-val\">—\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"result-row\">\n        \u003Cspan class=\"rr-label\">Bonus langue étrangère\u003C\u002Fspan>\n        \u003Cspan class=\"rr-val\" id=\"anc-lang-val\">—\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"result-row total\">\n        \u003Cspan class=\"rr-label\">Prime mensuelle brute\u003C\u002Fspan>\n        \u003Cspan class=\"rr-val\" id=\"anc-total-val\">—\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\n  \u003C!-- ===== PANEL: CONGÉS ===== -->\n  \u003Cdiv class=\"panel\" data-panel=\"conges\">\n    \u003Cdiv class=\"rule-callout\">\n      \u003Ci data-lucide=\"info\">\u003C\u002Fi>\n      \u003Cp>La CCN IDCC 733 accorde des \u003Cstrong>jours de congés supplémentaires d'ancienneté\u003C\u002Fstrong> au-delà des 30 jours ouvrables légaux : \u003Cstrong>+1 jour dès 10 ans, jusqu'à +4 jours à 30 ans\u003C\u002Fstrong> d'ancienneté.\u003C\u002Fp>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"form-group\">\n      \u003Clabel>Ancienneté (années complètes)\u003C\u002Flabel>\n      \u003Cdiv class=\"value-display\" id=\"cong-seniority-display\">10 ans\u003C\u002Fdiv>\n      \u003Cinput type=\"range\" id=\"cong-seniority\" min=\"0\" max=\"40\" step=\"1\" value=\"10\">\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"form-group\">\n      \u003Clabel>Temps de travail\u003C\u002Flabel>\n      \u003Cdiv class=\"toggle-row\">\n        \u003Clabel class=\"toggle-btn\" title=\"Temps partiel\">\n          \u003Cinput type=\"checkbox\" id=\"cong-parttime\">\n          \u003Cspan class=\"toggle-slider\">\u003C\u002Fspan>\n        \u003C\u002Flabel>\n        \u003Cspan class=\"toggle-label\" id=\"cong-parttime-label\">Temps plein\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"result-rows\" id=\"cong-result\">\n      \u003Cdiv class=\"result-row\">\n        \u003Cspan class=\"rr-label\">Congés légaux\u003C\u002Fspan>\n        \u003Cspan class=\"rr-val\">30 j.o.\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"result-row\">\n        \u003Cspan class=\"rr-label\">Jours supplémentaires CCN\u003C\u002Fspan>\n        \u003Cspan class=\"rr-val\" id=\"cong-extra-val\">—\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"result-row total\">\n        \u003Cspan class=\"rr-label\">Total congés annuels\u003C\u002Fspan>\n        \u003Cspan class=\"rr-val\" id=\"cong-total-val\">—\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"conges-info\" id=\"cong-info\">\u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\n  \u003Cp class=\"disclaimer\">\n    Calcul indicatif basé sur la CCN IDCC 733 — Convention collective nationale des détaillants en chaussures.\n    Source : \u003Ca href=\"https:\u002F\u002Fwww.legifrance.gouv.fr\u002Fconv_coll\u002Fid\u002FKALICONT000005635629\" target=\"_blank\" rel=\"noopener\">Légifrance KALICONT000005635629\u003C\u002Fa> — Avenant n°105 (16\u002F12\u002F2024).\n    Ce calculateur est fourni à titre informatif ; pour toute validation légale ou sociale, \u003Ca href=\"\u002Fask\" target=\"_top\">consultez un expert\u003C\u002Fa>.\n  \u003C\u002Fp>\n\u003C\u002Fmain>\n\n\u003Cscript>\n  \u002F\u002F =====================================================\n  \u002F\u002F SALARY GRID — CCN 733 \u002F Avenant n°105 (déc. 2024)\n  \u002F\u002F Base 35h\u002Fsemaine\n  \u002F\u002F =====================================================\n  const SALARY_GRID = [\n    { cat: 1, label: \"Employé(e)s\",        min35: 1803 },\n    { cat: 2, label: \"Employé(e)s\",        min35: 1816 },\n    { cat: 3, label: \"Employé(e)s\",        min35: 1851 },\n    { cat: 4, label: \"Employé(e)s\",        min35: 1920 },\n    { cat: 5, label: \"Agents de maîtrise\", min35: 2018 },\n    { cat: 6, label: \"Agents de maîtrise\", min35: 2390 },\n    { cat: 7, label: \"Cadres\",             min35: 2692 },\n    { cat: 8, label: \"Cadres\",             min35: 3710 },\n    { cat: 9, label: \"Cadres\",             min35: 4280 },\n  ];\n  const SMIC_HOURLY = 11.88; \u002F\u002F 2025\n  const SMIC_MONTHLY_35H = Math.round(SMIC_HOURLY * 35 * 52 \u002F 12);\n\n  \u002F\u002F Formatters\n  const fmtEUR = v => new Intl.NumberFormat('fr-FR', { style: 'currency', currency: 'EUR', maximumFractionDigits: 0 }).format(v);\n  const fmtPct = v => new Intl.NumberFormat('fr-FR', { style: 'percent', maximumFractionDigits: 1 }).format(v \u002F 100);\n\n  \u002F\u002F =====================================================\n  \u002F\u002F STATE\n  \u002F\u002F =====================================================\n  const state = {\n    ind: { salary: 2500, seniority: 5, motif: 'licenciement' },\n    sal: { category: 3, hours: 35 },\n    anc: { salary: 1900, seniority: 6, lang: 0 },\n    cong: { seniority: 10, parttime: false },\n  };\n\n  \u002F\u002F =====================================================\n  \u002F\u002F COMPUTE FUNCTIONS\n  \u002F\u002F =====================================================\n\n  function computeInd(s) {\n    const { salary, seniority, motif } = s;\n    if (motif === 'retraite') {\n      \u002F\u002F Indemnité de départ volontaire retraite — 1\u002F10 mois par année (légal, CCN muette)\n      const depart = salary * seniority \u002F 10;\n      return { ccn: depart, legal: depart, result: depart, isRetraite: true };\n    }\n    \u002F\u002F CCN formula: 1\u002F5 × salary × min(seniority, 10) + 2\u002F15 × salary × max(seniority-10, 0)\n    const ccn = (salary * (1\u002F5) * Math.min(seniority, 10))\n              + (salary * (2\u002F15) * Math.max(seniority - 10, 0));\n    \u002F\u002F Legal formula: 1\u002F4 × salary × min(seniority, 10) + 1\u002F3 × salary × max(seniority-10, 0)\n    const legal = (salary * (1\u002F4) * Math.min(seniority, 10))\n                + (salary * (1\u002F3) * Math.max(seniority - 10, 0));\n    \u002F\u002F Inaptitude: ×2 if no employer fault (simplified)\n    const mult = motif === 'inaptitude' ? 2 : 1;\n    return { ccn: ccn * mult, legal: legal * mult, result: Math.max(ccn, legal) * mult };\n  }\n\n  function computeSal(s) {\n    const row = SALARY_GRID.find(r => r.cat === s.category) || SALARY_GRID[0];\n    const convMin = Math.round(row.min35 * s.hours \u002F 35);\n    const smicAdj = Math.round(SMIC_MONTHLY_35H * s.hours \u002F 35);\n    return { conv: convMin, smic: smicAdj, result: Math.max(convMin, smicAdj) };\n  }\n\n  function computeAnc(s) {\n    const TIERS = [[15,15],[12,12],[9,9],[6,6],[3,3]]; \u002F\u002F [seniority_threshold, rate]\n    const tier = TIERS.find(([th]) => s.seniority >= th);\n    const rate = tier ? tier[1] : 0;\n    const langBonus = s.lang === 1 ? 10 : s.lang === 2 ? 15 : 0;\n    const totalRate = rate + langBonus;\n    const prime = s.salary * totalRate \u002F 100;\n    return { rate, langBonus, totalRate, prime };\n  }\n\n  function computeCong(s) {\n    const BASE = 30;\n    let extra = 0;\n    if (s.seniority >= 30) extra = 4;\n    else if (s.seniority >= 25) extra = 3;\n    else if (s.seniority >= 20) extra = 2;\n    else if (s.seniority >= 10) extra = 1;\n    const total = BASE + extra;\n    return { extra, total };\n  }\n\n  \u002F\u002F =====================================================\n  \u002F\u002F RENDER FUNCTIONS\n  \u002F\u002F =====================================================\n\n  function renderInd() {\n    const r = computeInd(state.ind);\n    document.getElementById('ind-salary-display').textContent = fmtEUR(state.ind.salary);\n    document.getElementById('ind-seniority-display').textContent = state.ind.seniority + ' an' + (state.ind.seniority > 1 ? 's' : '');\n    if (r.isRetraite) {\n      document.getElementById('ind-ccn-val').textContent = '(départ retraite)';\n      document.getElementById('ind-legal-val').textContent = fmtEUR(r.legal);\n      document.getElementById('ind-total-val').textContent = fmtEUR(r.result);\n    } else {\n      document.getElementById('ind-ccn-val').textContent = fmtEUR(r.ccn);\n      document.getElementById('ind-legal-val').textContent = fmtEUR(r.legal);\n      document.getElementById('ind-total-val').textContent = fmtEUR(r.result);\n    }\n  }\n\n  function renderSal() {\n    const r = computeSal(state.sal);\n    document.getElementById('sal-hours-display').textContent = state.sal.hours + 'h \u002F semaine';\n    document.getElementById('sal-conv-val').textContent = fmtEUR(r.conv);\n    document.getElementById('sal-smic-val').textContent = fmtEUR(r.smic);\n    document.getElementById('sal-total-val').textContent = fmtEUR(r.result);\n\n    \u002F\u002F Build table\n    const tbody = document.querySelector('#sal-table tbody');\n    tbody.innerHTML = '';\n    SALARY_GRID.forEach(row => {\n      const tr = document.createElement('tr');\n      if (row.cat === state.sal.category) tr.classList.add('highlighted');\n      const adj = Math.round(row.min35 * state.sal.hours \u002F 35);\n      tr.innerHTML = `\u003Ctd>${row.cat}\u003C\u002Ftd>\u003Ctd>${row.label}\u003C\u002Ftd>\u003Ctd>${fmtEUR(adj)}\u003C\u002Ftd>`;\n      tbody.appendChild(tr);\n    });\n  }\n\n  function renderAnc() {\n    const r = computeAnc(state.anc);\n    document.getElementById('anc-salary-display').textContent = fmtEUR(state.anc.salary);\n    document.getElementById('anc-seniority-display').textContent = state.anc.seniority + ' an' + (state.anc.seniority > 1 ? 's' : '');\n    document.getElementById('anc-rate-val').textContent = r.rate === 0 ? 'Aucun (\u003C 3 ans)' : r.rate + '%';\n    document.getElementById('anc-lang-val').textContent = r.langBonus === 0 ? '—' : '+' + r.langBonus + '%';\n    document.getElementById('anc-total-val').textContent = r.prime === 0 ? '0 €' : fmtEUR(r.prime);\n  }\n\n  function renderCong() {\n    const r = computeCong(state.cong);\n    document.getElementById('cong-seniority-display').textContent = state.cong.seniority + ' an' + (state.cong.seniority > 1 ? 's' : '');\n    document.getElementById('cong-extra-val').textContent = '+' + r.extra + ' j.o.';\n    document.getElementById('cong-total-val').textContent = r.total + ' j.o.';\n\n    const info = document.getElementById('cong-info');\n    if (state.cong.parttime) {\n      info.textContent = 'En cas de temps partiel, le droit à congés est calculé au prorata du temps de travail effectif, sauf dispositions plus favorables négociées.';\n      info.style.display = 'block';\n    } else if (r.extra === 0) {\n      info.textContent = 'Les jours supplémentaires conventionnels s\\'appliquent à partir de 10 ans d\\'ancienneté.';\n      info.style.display = 'block';\n    } else {\n      info.style.display = 'block';\n      info.textContent = `Avec ${state.cong.seniority} ans d'ancienneté : ${r.extra} jour(s) conventionnel(s) en plus des 30 jours légaux.`;\n    }\n  }\n\n  \u002F\u002F =====================================================\n  \u002F\u002F TABS\n  \u002F\u002F =====================================================\n\n  const tabs = document.querySelectorAll('[data-tab]');\n  const panels = document.querySelectorAll('[data-panel]');\n  const RENDER_MAP = {\n    'indemnite': renderInd,\n    'salaire-min': renderSal,\n    'prime-anciennete': renderAnc,\n    'conges': renderCong,\n  };\n\n  function activate(id) {\n    tabs.forEach(t => {\n      t.classList.toggle('active', t.dataset.tab === id);\n      t.setAttribute('aria-selected', t.dataset.tab === id ? 'true' : 'false');\n    });\n    panels.forEach(p => p.classList.toggle('active', p.dataset.panel === id));\n    history.replaceState(null, '', '#' + id);\n    if (RENDER_MAP[id]) RENDER_MAP[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]?.dataset.tab || 'indemnite';\n  const validHash = [...tabs].some(t => t.dataset.tab === hashTab);\n  activate(validHash ? hashTab : firstTab);\n\n  \u002F\u002F =====================================================\n  \u002F\u002F INPUTS — INDEMNITÉ\n  \u002F\u002F =====================================================\n  document.getElementById('ind-salary').addEventListener('input', e => {\n    state.ind.salary = +e.target.value; renderInd();\n  });\n  document.getElementById('ind-seniority').addEventListener('input', e => {\n    state.ind.seniority = +e.target.value; renderInd();\n  });\n  document.querySelectorAll('#ind-motif .pill').forEach(pill => {\n    pill.addEventListener('click', () => {\n      document.querySelectorAll('#ind-motif .pill').forEach(p => p.classList.remove('active'));\n      pill.classList.add('active');\n      state.ind.motif = pill.dataset.val;\n      renderInd();\n    });\n  });\n\n  \u002F\u002F =====================================================\n  \u002F\u002F INPUTS — SALAIRE MIN\n  \u002F\u002F =====================================================\n  document.getElementById('sal-category').addEventListener('change', e => {\n    state.sal.category = +e.target.value; renderSal();\n  });\n  document.getElementById('sal-hours').addEventListener('input', e => {\n    state.sal.hours = +e.target.value; renderSal();\n  });\n\n  \u002F\u002F =====================================================\n  \u002F\u002F INPUTS — PRIME ANCIENNETÉ\n  \u002F\u002F =====================================================\n  document.getElementById('anc-salary').addEventListener('input', e => {\n    state.anc.salary = +e.target.value; renderAnc();\n  });\n  document.getElementById('anc-seniority').addEventListener('input', e => {\n    state.anc.seniority = +e.target.value; renderAnc();\n  });\n  document.querySelectorAll('#anc-lang .pill').forEach(pill => {\n    pill.addEventListener('click', () => {\n      document.querySelectorAll('#anc-lang .pill').forEach(p => p.classList.remove('active'));\n      pill.classList.add('active');\n      state.anc.lang = +pill.dataset.val;\n      renderAnc();\n    });\n  });\n\n  \u002F\u002F =====================================================\n  \u002F\u002F INPUTS — CONGÉS\n  \u002F\u002F =====================================================\n  document.getElementById('cong-seniority').addEventListener('input', e => {\n    state.cong.seniority = +e.target.value; renderCong();\n  });\n  document.getElementById('cong-parttime').addEventListener('change', e => {\n    state.cong.parttime = e.target.checked;\n    document.getElementById('cong-parttime-label').textContent = e.target.checked ? 'Temps partiel' : 'Temps plein';\n    renderCong();\n  });\n\n  \u002F\u002F =====================================================\n  \u002F\u002F RESIZE OBSERVER — iframe contract\n  \u002F\u002F =====================================================\n  if (typeof ResizeObserver !== 'undefined') {\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  \u002F\u002F Initialize lucide icons\n  if (typeof lucide !== 'undefined') lucide.createIcons();\n\u003C\u002Fscript>\n\u003C\u002Fbody>\n\u003C\u002Fhtml>\n","generated","juridique","consumer","both","https:\u002F\u002Fpub-bdebbd2dad294475a2da0eb657815b6b.r2.dev\u002Ftools\u002Fccn-detaillants-en-chaussures-4e95041b62.webp",[]]