[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"footer-root-categories-fr-FR":3,"tool-content-ccn-commerce-alimentaire-non-specialise-fr":83,"footer-cities-fr":163},[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":157,"source":158,"category":159,"audience":160,"publish_mode":161,"hero_image":162,"hero_image_alt":85},"ccn-commerce-alimentaire-non-specialise","CCN du commerce de détail alimentaire non spécialisé — calculateur complet","Calculateur CCN Commerce de détail alimentaire non spécialisé IDCC 1505 | Expert Zoom","Outil interactif couvrant le préavis (licenciement et démission), la grille de salaires minimaux et la période d'essai de la CCN du commerce de détail alimentaire non spécialisé (IDCC 1505, Brochure JO 3244).","Ce calculateur couvre les trois principales dérogations de la CCN du commerce de détail alimentaire non spécialisé (IDCC 1505) par rapport au code du travail : les durées de préavis par catégorie et ancienneté (art. 20), la grille de salaires minimaux conventionnels 2025 (accord 12 fév. 2025, de 1 829 € à 3 348 € brut\u002Fmois) et les périodes d'essai réduites (1 mois employés, 2 mois AM, 3 mois cadres). Indemnité de licenciement, congés payés et heures supplémentaires restent alignés sur le code du travail.",[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 Commerce de détail alimentaire non spécialisé — IDCC 1505","WebApplication",{"name":94,"@type":95,"identifier":96},"Convention collective nationale du commerce de détail alimentaire non spécialisé","Thing","IDCC 1505",{"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 le préavis (licenciement et démission), la grille de salaires minimaux et la période d'essai de la convention collective du commerce de détail alimentaire non spécialisé (IDCC 1505, Brochure JO 3244).","All","FinanceApplication",true,{"@type":110,"@context":100,"mainEntity":111},"FAQPage",[112,118,122],{"name":113,"@type":114,"acceptedAnswer":115},"Quelle est la durée du préavis de licenciement dans la CCN 1505 ?","Question",{"text":116,"@type":117},"Pour les employés : 1 mois si moins de 2 ans d'ancienneté, 2 mois au-delà. Pour les agents de maîtrise : 2 mois. Pour les cadres : 3 mois (art. 20 CCN IDCC 1505).","Answer",{"name":119,"@type":114,"acceptedAnswer":120},"Quels sont les salaires minimaux de la CCN commerce de détail alimentaire non spécialisé en 2025 ?",{"text":121,"@type":117},"La grille 2025 (accord 12 fév. 2025) s'étend de 1 829,54 € (niveau E1) à 3 348,42 € (niveau C2) pour 35h\u002Fsemaine. Elle couvre 7 niveaux employés, 2 niveaux agents de maîtrise et 2 niveaux cadres.",{"name":123,"@type":114,"acceptedAnswer":124},"Quelle est la période d'essai prévue par la CCN 1505 ?",{"text":125,"@type":117},"La CCN 1505 prévoit des périodes d'essai inférieures aux maxima légaux : 1 mois pour les employés, 2 mois pour les agents de maîtrise, 3 mois pour les cadres. Le renouvellement n'est pas prévu par la convention.",[127,130,133,136,139,142,145,148,151,154],{"a":128,"q":129},"La durée du préavis de licenciement dépend de la catégorie et de l'ancienneté : pour les employés, 1 mois si moins de 2 ans d'ancienneté, 2 mois au-delà ; pour les agents de maîtrise, 2 mois quelle que soit l'ancienneté ; pour les cadres, 3 mois. Ces durées sont fixées par l'article 20 de la convention collective IDCC 1505.","Quelle est la durée du préavis de licenciement dans la CCN commerce de détail alimentaire non spécialisé (IDCC 1505) ?",{"a":131,"q":132},"En cas de démission, le préavis est de 1 mois pour les employés, 2 mois pour les agents de maîtrise et 3 mois pour les cadres, conformément à l'article 20 de la CCN commerce de détail alimentaire non spécialisé (IDCC 1505).","Quelle est la durée du préavis de démission pour la convention collective 1505 ?",{"a":134,"q":135},"Selon l'accord du 12 février 2025 (applicable au 1er juin 2025), les minima conventionnels vont de 1 829,54 € brut\u002Fmois pour le niveau E1 à 3 348,42 € brut\u002Fmois pour le niveau cadre C2, pour un temps plein de 35h\u002Fsemaine. La grille comprend 7 niveaux d'employés (E1 à E5), 2 niveaux d'agents de maîtrise (AM1-AM2) et 2 niveaux cadres (C1-C2).","Quels sont les salaires minimaux dans la convention collective du commerce de détail alimentaire non spécialisé en 2025 ?",{"a":137,"q":138},"Non. La convention collective du commerce de détail alimentaire non spécialisé (IDCC 1505) ne prévoit pas de prime d'ancienneté ni de 13ème mois obligatoire. Ces avantages peuvent exister par accord d'entreprise ou contrat individuel, mais ne sont pas imposés par la CCN.","La CCN 1505 prévoit-elle une prime d'ancienneté ou un 13ème mois ?",{"a":140,"q":141},"La CCN 1505 prévoit des périodes d'essai inférieures aux maxima légaux : 1 mois pour les employés (contre 2 mois légaux), 2 mois pour les agents de maîtrise (contre 3 mois légaux) et 3 mois pour les cadres (contre 4 mois légaux). La convention ne prévoit pas de renouvellement de la période d'essai.","Quelle est la durée de la période d'essai sous la convention collective 1505 ?",{"a":143,"q":144},"Non. La convention collective IDCC 1505 ne prévoit pas de renouvellement de la période d'essai. Contrairement à certaines autres conventions collectives, aucun avenant n'autorise le renouvellement dans ce secteur.","Le renouvellement de la période d'essai est-il possible dans la CCN commerce alimentaire non spécialisé ?",{"a":146,"q":147},"Non. La convention collective du commerce de détail alimentaire non spécialisé (IDCC 1505) ne prévoit pas de jours de congés supplémentaires par rapport au minimum légal de 30 jours ouvrables (5 semaines) fixé par l'article L3141-3 du code du travail.","Les congés payés sont-ils plus favorables dans la CCN 1505 que le code du travail ?",{"a":149,"q":150},"La CCN 1505 ne déroge pas aux taux légaux du code du travail : les heures supplémentaires sont majorées de 25 % pour les 8 premières heures au-delà de la durée légale (heures 36 à 43), puis de 50 % à partir de la 44e heure (art. L3121-36 CT).","Quels taux de majoration pour les heures supplémentaires prévoient la CCN 1505 ?",{"a":152,"q":153},"La grille de salaires de la CCN commerce de détail alimentaire non spécialisé (IDCC 1505) est fixée par accord de branche, le dernier en date étant celui du 12 février 2025 publié sur Légifrance. Elle peut aussi être consultée sur le site du CDNA (syndicat patronal) et sur le Code du travail numérique (code.travail.gouv.fr).","Comment trouver la grille de salaires à jour de la convention collective 1505 ?",{"a":155,"q":156},"La CCN 1505 ne prévoit pas de formule d'indemnité plus favorable que le code du travail. L'indemnité légale s'applique : 1\u002F4 de mois de salaire de référence par année d'ancienneté pour les 10 premières années, puis 1\u002F3 de mois par année au-delà de 10 ans (art. L1234-9 CT). L'ancienneté minimale requise est de 8 mois.","Quelle est l'indemnité de licenciement dans la CCN commerce de détail alimentaire non spécialisé ?","\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 Commerce de détail alimentaire non spécialisé — IDCC 1505\u003C\u002Ftitle>\n  \u003Cscript src=\"https:\u002F\u002Funpkg.com\u002Flucide@latest\u002Fdist\u002Fumd\u002Flucide.min.js\">\u003C\u002Fscript>\n  \u003Cstyle>\n    \u002F* Design tokens *\u002F\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      --text-muted: #78716c;\n      --success-bg: #f0fdf4;\n      --success-border: #86efac;\n      --warning-bg: #fffbeb;\n      --warning-border: #fcd34d;\n      --info-bg: #eff6ff;\n      --info-border: #93c5fd;\n      --radius: 0.75rem;\n      --shadow: 0 1px 3px rgba(0,0,0,0.08), 0 1px 2px rgba(0,0,0,0.04);\n    }\n    * { box-sizing: border-box; margin: 0; padding: 0; }\n    body {\n      font-family: system-ui, -apple-system, sans-serif;\n      background: var(--bg);\n      color: var(--text);\n      font-size: 15px;\n      line-height: 1.5;\n    }\n    .tool-root {\n      max-width: 680px;\n      margin: 0 auto;\n      padding: 1.25rem;\n    }\n    \u002F* Header *\u002F\n    .tool-header {\n      margin-bottom: 1.25rem;\n    }\n    .tool-header h1 {\n      font-size: 1.15rem;\n      font-weight: 700;\n      color: var(--text);\n      line-height: 1.3;\n    }\n    .tool-header .idcc-badge {\n      display: inline-flex;\n      align-items: center;\n      gap: 0.25rem;\n      background: var(--accent-light);\n      color: var(--accent);\n      border: 1px solid var(--info-border);\n      border-radius: 0.375rem;\n      padding: 0.2rem 0.5rem;\n      font-size: 0.78rem;\n      font-weight: 600;\n      margin-top: 0.4rem;\n    }\n    \u002F* Tabs *\u002F\n    .tabs-nav {\n      display: flex;\n      gap: 0.25rem;\n      flex-wrap: wrap;\n      border-bottom: 2px solid var(--border);\n      margin-bottom: 1.25rem;\n    }\n    .tab-btn {\n      display: flex;\n      align-items: center;\n      gap: 0.35rem;\n      padding: 0.5rem 0.9rem;\n      border: none;\n      background: transparent;\n      color: var(--text-muted);\n      font-size: 0.85rem;\n      font-weight: 500;\n      cursor: pointer;\n      border-bottom: 2px solid transparent;\n      margin-bottom: -2px;\n      border-radius: 0.375rem 0.375rem 0 0;\n      transition: color 0.15s, border-color 0.15s, background 0.15s;\n      white-space: nowrap;\n    }\n    .tab-btn:hover { color: var(--accent); background: var(--accent-light); }\n    .tab-btn.active {\n      color: var(--accent);\n      border-bottom-color: var(--accent);\n      font-weight: 600;\n    }\n    \u002F* Panel *\u002F\n    .tab-panel { display: none; }\n    .tab-panel.active { display: block; }\n    \u002F* Rule callout *\u002F\n    .rule-callout {\n      display: flex;\n      gap: 0.6rem;\n      align-items: flex-start;\n      background: var(--info-bg);\n      border: 1px solid var(--info-border);\n      border-radius: var(--radius);\n      padding: 0.75rem 1rem;\n      margin-bottom: 1rem;\n      font-size: 0.875rem;\n    }\n    .rule-callout svg { flex-shrink: 0; color: var(--accent); margin-top: 0.1rem; }\n    .rule-callout p { color: #1e3a5f; line-height: 1.5; }\n    .rule-callout strong { font-weight: 600; }\n    \u002F* Form elements *\u002F\n    .form-group {\n      margin-bottom: 1rem;\n    }\n    .form-group label {\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n      font-size: 0.85rem;\n      font-weight: 500;\n      color: var(--text-muted);\n      margin-bottom: 0.35rem;\n    }\n    .form-group label .val-badge {\n      font-weight: 700;\n      color: var(--text);\n      font-variant-numeric: tabular-nums;\n    }\n    input[type=\"range\"] {\n      width: 100%;\n      accent-color: var(--accent);\n      height: 4px;\n      cursor: pointer;\n    }\n    select {\n      width: 100%;\n      padding: 0.5rem 0.75rem;\n      border: 1px solid var(--border);\n      border-radius: 0.5rem;\n      background: var(--surface);\n      color: var(--text);\n      font-size: 0.9rem;\n      cursor: pointer;\n      outline: none;\n      transition: border-color 0.15s;\n    }\n    select:focus { border-color: var(--accent); }\n    \u002F* Pills *\u002F\n    .pills {\n      display: flex;\n      gap: 0.4rem;\n      flex-wrap: wrap;\n    }\n    .pill {\n      padding: 0.35rem 0.75rem;\n      border: 1px solid var(--border);\n      border-radius: 99px;\n      font-size: 0.82rem;\n      font-weight: 500;\n      cursor: pointer;\n      background: var(--surface);\n      color: var(--text-muted);\n      transition: all 0.15s;\n      user-select: none;\n    }\n    .pill.active, .pill:hover {\n      background: var(--accent);\n      color: #fff;\n      border-color: var(--accent);\n    }\n    \u002F* Result card *\u002F\n    .result-card {\n      background: var(--surface);\n      border: 1px solid var(--border);\n      border-radius: var(--radius);\n      padding: 1rem 1.25rem;\n      margin-top: 1rem;\n      box-shadow: var(--shadow);\n    }\n    .result-card .result-label {\n      font-size: 0.8rem;\n      font-weight: 500;\n      color: var(--text-muted);\n      margin-bottom: 0.25rem;\n    }\n    .result-card .result-value {\n      font-size: 1.6rem;\n      font-weight: 800;\n      color: var(--accent);\n      font-variant-numeric: tabular-nums;\n    }\n    .result-card .result-sub {\n      font-size: 0.8rem;\n      color: var(--text-muted);\n      margin-top: 0.35rem;\n      line-height: 1.4;\n    }\n    .result-card .result-detail {\n      margin-top: 0.75rem;\n      padding-top: 0.75rem;\n      border-top: 1px solid var(--border);\n      font-size: 0.82rem;\n      color: var(--text-muted);\n      line-height: 1.5;\n    }\n    \u002F* Salary table *\u002F\n    .salary-table {\n      width: 100%;\n      border-collapse: collapse;\n      font-size: 0.82rem;\n      margin-top: 0.5rem;\n    }\n    .salary-table th {\n      background: var(--accent-light);\n      color: var(--accent-dark);\n      font-weight: 600;\n      padding: 0.4rem 0.6rem;\n      text-align: left;\n      border-bottom: 2px solid var(--info-border);\n    }\n    .salary-table td {\n      padding: 0.35rem 0.6rem;\n      border-bottom: 1px solid var(--border);\n      font-variant-numeric: tabular-nums;\n    }\n    .salary-table tr:last-child td { border-bottom: none; }\n    .salary-table tr.highlighted td {\n      background: var(--accent-light);\n      font-weight: 600;\n      color: var(--accent-dark);\n    }\n    \u002F* Disclaimer *\u002F\n    .disclaimer {\n      margin-top: 1.5rem;\n      font-size: 0.75rem;\n      color: var(--text-muted);\n      border-top: 1px solid var(--border);\n      padding-top: 0.75rem;\n      line-height: 1.5;\n    }\n    .disclaimer a { color: var(--accent); }\n    \u002F* Divider *\u002F\n    .form-divider {\n      border: none;\n      border-top: 1px dashed var(--border);\n      margin: 0.75rem 0;\n    }\n    .section-label {\n      font-size: 0.78rem;\n      font-weight: 600;\n      color: var(--text-muted);\n      text-transform: uppercase;\n      letter-spacing: 0.05em;\n      margin-bottom: 0.5rem;\n    }\n  \u003C\u002Fstyle>\n\u003C\u002Fhead>\n\u003Cbody>\n\u003C!-- CCN IDCC 1505 — deviations\n     preavis: L1234-1 → art. 20 CCN: employés \u003C2 ans = 1 mois; ≥2 ans = 2 mois; AM = 2 mois; cadres = 3 mois\n     salaire-min: SMIC → grille 3 familles 9 niveaux, accord 12 fév. 2025, min E1=1 829,54 € → max C2=3 348,42 €\n     duree-essai: L1221-19 → CCN: employés=1 mois (vs 2), AM=2 mois (vs 3), cadres=3 mois (vs 4); non renouvelable\n     indemnite: L1234-9 → identique, pas de déviation\n     prime-annuelle: aucune obligation légale → CCN silencieuse, pas de déviation\n     conges: L3141-3 = 30j ouvrables → CCN identique, pas de déviation\n     heures-supp: L3121-36 → CCN identique 25%\u002F50%, pas de déviation -->\n\u003Cmain class=\"tool-root\">\n  \u003Cdiv class=\"tool-header\">\n    \u003Ch1>Convention collective du commerce de détail alimentaire non spécialisé\u003C\u002Fh1>\n    \u003Cdiv class=\"idcc-badge\">\n      \u003Ci data-lucide=\"tag\" style=\"width:12px;height:12px;\">\u003C\u002Fi>\n      IDCC 1505 · Brochure JO 3244\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\n  \u003C!-- Tabs -->\n  \u003Cnav class=\"tabs-nav\" role=\"tablist\">\n    \u003Cbutton class=\"tab-btn\" data-tab=\"preavis\" role=\"tab\" aria-selected=\"false\">\n      \u003Ci data-lucide=\"clock\" style=\"width:14px;height:14px;\">\u003C\u002Fi> Préavis\n    \u003C\u002Fbutton>\n    \u003Cbutton class=\"tab-btn\" data-tab=\"salaire\" role=\"tab\" aria-selected=\"false\">\n      \u003Ci data-lucide=\"bar-chart-2\" style=\"width:14px;height:14px;\">\u003C\u002Fi> Grille salaires\n    \u003C\u002Fbutton>\n    \u003Cbutton class=\"tab-btn\" data-tab=\"essai\" role=\"tab\" aria-selected=\"false\">\n      \u003Ci data-lucide=\"calendar-check\" style=\"width:14px;height:14px;\">\u003C\u002Fi> Période d'essai\n    \u003C\u002Fbutton>\n  \u003C\u002Fnav>\n\n  \u003C!-- ===== TAB: PRÉAVIS ===== -->\n  \u003Cdiv class=\"tab-panel\" data-panel=\"preavis\" id=\"panel-preavis\">\n    \u003Cdiv class=\"rule-callout\">\n      \u003Ci data-lucide=\"info\" style=\"width:16px;height:16px;\">\u003C\u002Fi>\n      \u003Cp>La CCN 1505 fixe des durées de préavis \u003Cstrong>spécifiques par catégorie et ancienneté\u003C\u002Fstrong>, plus précises que les dispositions supplétives du code du travail (art. L1234-1). Pour les employés, la durée varie selon l'ancienneté ; agents de maîtrise et cadres ont des durées fixes.\u003C\u002Fp>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"form-group\">\n      \u003Clabel>Catégorie professionnelle\u003C\u002Flabel>\n      \u003Cdiv class=\"pills\" id=\"preavis-cat\">\n        \u003Cspan class=\"pill active\" data-val=\"employe\">Employé\u003C\u002Fspan>\n        \u003Cspan class=\"pill\" data-val=\"am\">Agent de maîtrise\u003C\u002Fspan>\n        \u003Cspan class=\"pill\" data-val=\"cadre\">Cadre\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv id=\"preavis-anc-group\" class=\"form-group\">\n      \u003Clabel>\n        Ancienneté dans l'entreprise\n        \u003Cspan class=\"val-badge\" id=\"preavis-anc-val\">1 an\u003C\u002Fspan>\n      \u003C\u002Flabel>\n      \u003Cinput type=\"range\" id=\"preavis-anc\" min=\"0\" max=\"30\" step=\"1\" value=\"1\">\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"form-group\">\n      \u003Clabel>Type de rupture\u003C\u002Flabel>\n      \u003Cdiv class=\"pills\" id=\"preavis-type\">\n        \u003Cspan class=\"pill active\" data-val=\"licenciement\">Licenciement\u003C\u002Fspan>\n        \u003Cspan class=\"pill\" data-val=\"demission\">Démission\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"result-card\" id=\"preavis-result\">\n      \u003Cdiv class=\"result-label\">Durée du préavis\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-value\" id=\"preavis-val\">—\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-detail\" id=\"preavis-detail\">\u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\n  \u003C!-- ===== TAB: SALAIRE MINIMUM ===== -->\n  \u003Cdiv class=\"tab-panel\" data-panel=\"salaire\" id=\"panel-salaire\">\n    \u003Cdiv class=\"rule-callout\">\n      \u003Ci data-lucide=\"info\" style=\"width:16px;height:16px;\">\u003C\u002Fi>\n      \u003Cp>La CCN 1505 prévoit une grille de \u003Cstrong>salaires minimaux conventionnels\u003C\u002Fstrong> organisée en 3 familles (Employés, Agents de maîtrise, Cadres) et 9 niveaux. Les montants issus de l'accord du 12 février 2025 (applicable au 1er juin 2025) sont supérieurs au SMIC (1 823,03 € en janvier 2026).\u003C\u002Fp>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"form-group\">\n      \u003Clabel>Catégorie\u003C\u002Flabel>\n      \u003Cdiv class=\"pills\" id=\"sal-cat\">\n        \u003Cspan class=\"pill active\" data-val=\"employe\">Employés\u003C\u002Fspan>\n        \u003Cspan class=\"pill\" data-val=\"am\">Agents de maîtrise\u003C\u002Fspan>\n        \u003Cspan class=\"pill\" data-val=\"cadre\">Cadres\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"form-group\" id=\"sal-niveau-group\">\n      \u003Clabel>Niveau\u003C\u002Flabel>\n      \u003Cselect id=\"sal-niveau\">\u003C\u002Fselect>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"form-group\">\n      \u003Clabel>\n        Heures hebdomadaires\n        \u003Cspan class=\"val-badge\" id=\"sal-heures-val\">35 h\u003C\u002Fspan>\n      \u003C\u002Flabel>\n      \u003Cinput type=\"range\" id=\"sal-heures\" min=\"10\" max=\"48\" step=\"0.5\" value=\"35\">\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"result-card\" id=\"sal-result\">\n      \u003Cdiv class=\"result-label\">Salaire minimum conventionnel mensuel brut\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-value\" id=\"sal-val\">—\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-detail\" id=\"sal-detail\">\u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv style=\"margin-top:1rem;\">\n      \u003Cdiv class=\"section-label\">Grille complète\u003C\u002Fdiv>\n      \u003Ctable class=\"salary-table\" id=\"sal-table\">\n        \u003Cthead>\n          \u003Ctr>\n            \u003Cth>Niveau\u003C\u002Fth>\n            \u003Cth>Taux horaire\u003C\u002Fth>\n            \u003Cth>Mensuel brut (35h)\u003C\u002Fth>\n          \u003C\u002Ftr>\n        \u003C\u002Fthead>\n        \u003Ctbody id=\"sal-table-body\">\u003C\u002Ftbody>\n      \u003C\u002Ftable>\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\n  \u003C!-- ===== TAB: PÉRIODE D'ESSAI ===== -->\n  \u003Cdiv class=\"tab-panel\" data-panel=\"essai\" id=\"panel-essai\">\n    \u003Cdiv class=\"rule-callout\">\n      \u003Ci data-lucide=\"info\" style=\"width:16px;height:16px;\">\u003C\u002Fi>\n      \u003Cp>La CCN 1505 fixe des périodes d'essai \u003Cstrong>inférieures aux maxima légaux\u003C\u002Fstrong> (art. L1221-19 CT) : 1 mois pour les employés (vs 2 mois légaux), 2 mois pour les agents de maîtrise (vs 3 mois), 3 mois pour les cadres (vs 4 mois). Le renouvellement n'est \u003Cstrong>pas prévu\u003C\u002Fstrong> par la convention.\u003C\u002Fp>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"form-group\">\n      \u003Clabel>Catégorie professionnelle\u003C\u002Flabel>\n      \u003Cdiv class=\"pills\" id=\"essai-cat\">\n        \u003Cspan class=\"pill active\" data-val=\"employe\">Employé (CDI)\u003C\u002Fspan>\n        \u003Cspan class=\"pill\" data-val=\"am\">Agent de maîtrise (CDI)\u003C\u002Fspan>\n        \u003Cspan class=\"pill\" data-val=\"cadre\">Cadre (CDI)\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"result-card\" id=\"essai-result\">\n      \u003Cdiv class=\"result-label\">Durée de la période d'essai\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-value\" id=\"essai-val\">—\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-sub\" id=\"essai-sub\">\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-detail\" id=\"essai-detail\">\u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\n  \u003C!-- Disclaimer (shared) -->\n  \u003Cp class=\"disclaimer\">\n    \u003Ci data-lucide=\"alert-triangle\" style=\"width:12px;height:12px;vertical-align:middle;\">\u003C\u002Fi>\n    Calcul indicatif basé sur la CCN IDCC 1505 (Commerce de détail alimentaire non spécialisé — Brochure JO 3244).\n    Source : \u003Ca href=\"https:\u002F\u002Fwww.legifrance.gouv.fr\u002Fconv_coll\u002Fid\u002FKALICONT000005635421\u002F\" target=\"_blank\" rel=\"noopener\">Légifrance\u003C\u002Fa> · Accord salarial 12 fév. 2025.\n    Pour toute validation légale\n  \u003C\u002Fp>\n\u003C\u002Fmain>\n\n\u003Cscript>\n\u002F\u002F ============================================================\n\u002F\u002F SALARY DATA — accord 12 février 2025 (applicable 1er juin 2025)\n\u002F\u002F ============================================================\nconst SALARY_GRID = {\n  employe: [\n    { code: 'E1', label: 'E1 — Employé niveau 1', hourly: 12.063, monthly: 1829.54 },\n    { code: 'E2', label: 'E2 — Employé niveau 2', hourly: 12.134, monthly: 1840.34 },\n    { code: 'E3', label: 'E3 — Employé niveau 3', hourly: 12.147, monthly: 1842.34 },\n    { code: 'E4', label: 'E4 — Employé niveau 4', hourly: 12.400, monthly: 1880.75 },\n    { code: 'E5a', label: 'E5 — Employé niveau 5 (1er échelon)', hourly: 12.486, monthly: 1893.71 },\n    { code: 'E5b', label: 'E5 — Employé niveau 5 (2e échelon)', hourly: 12.785, monthly: 1939.06 },\n    { code: 'E5c', label: 'E5 — Employé niveau 5 (3e échelon)', hourly: 12.882, monthly: 1953.86 },\n  ],\n  am: [\n    { code: 'AM1', label: 'AM1 — Agent de maîtrise niveau 1', hourly: 16.023, monthly: 2430.18 },\n    { code: 'AM2', label: 'AM2 — Agent de maîtrise niveau 2', hourly: 16.296, monthly: 2471.68 },\n  ],\n  cadre: [\n    { code: 'C1', label: 'C1 — Cadre niveau 1', hourly: 19.929, monthly: 3022.65 },\n    { code: 'C2', label: 'C2 — Cadre niveau 2', hourly: 22.077, monthly: 3348.42 },\n  ]\n};\n\nconst FMT_EUR = new Intl.NumberFormat('fr-FR', { style: 'currency', currency: 'EUR', minimumFractionDigits: 2 });\n\n\u002F\u002F ============================================================\n\u002F\u002F STATE\n\u002F\u002F ============================================================\nconst state = {\n  preavis: { cat: 'employe', anc: 1, type: 'licenciement' },\n  salaire: { cat: 'employe', niveau: 'E1', heures: 35 },\n  essai: { cat: 'employe' },\n};\n\n\u002F\u002F ============================================================\n\u002F\u002F PREAVIS COMPUTE\n\u002F\u002F ============================================================\nfunction computePreavis(s) {\n  const { cat, anc, type } = s;\n  let duree = '', detail = '';\n\n  if (type === 'licenciement') {\n    if (cat === 'employe') {\n      if (anc \u003C 2) {\n        duree = '1 mois';\n        detail = 'Employé avec moins de 2 ans d\\'ancienneté : préavis de 1 mois (art. 20 CCN 1505).';\n      } else {\n        duree = '2 mois';\n        detail = 'Employé avec 2 ans d\\'ancienneté et plus : préavis de 2 mois (art. 20 CCN 1505).';\n      }\n    } else if (cat === 'am') {\n      duree = '2 mois';\n      detail = 'Agent de maîtrise — préavis fixé à 2 mois quelle que soit l\\'ancienneté (art. 20 CCN 1505).';\n    } else {\n      duree = '3 mois';\n      detail = 'Cadre — préavis fixé à 3 mois quelle que soit l\\'ancienneté (art. 20 CCN 1505).';\n    }\n  } else {\n    \u002F\u002F démission\n    if (cat === 'employe') {\n      duree = '1 mois';\n      detail = 'Employé en démission : préavis d\\'1 mois (art. 20 CCN 1505).';\n    } else if (cat === 'am') {\n      duree = '2 mois';\n      detail = 'Agent de maîtrise en démission : préavis de 2 mois (art. 20 CCN 1505).';\n    } else {\n      duree = '3 mois';\n      detail = 'Cadre en démission : préavis de 3 mois (art. 20 CCN 1505).';\n    }\n  }\n  return { duree, detail };\n}\n\nfunction renderPreavis() {\n  const r = computePreavis(state.preavis);\n  document.getElementById('preavis-val').textContent = r.duree;\n  document.getElementById('preavis-detail').textContent = r.detail;\n  \u002F\u002F hide ancienneté slider for AM\u002FCadre in licenciement mode since no variation\n  const showAnc = state.preavis.cat === 'employe';\n  document.getElementById('preavis-anc-group').style.display = showAnc ? '' : 'none';\n}\n\n\u002F\u002F ============================================================\n\u002F\u002F SALAIRE COMPUTE\n\u002F\u002F ============================================================\nfunction buildSalNiveauSelect() {\n  const sel = document.getElementById('sal-niveau');\n  const cat = state.salaire.cat;\n  const rows = SALARY_GRID[cat];\n  sel.innerHTML = '';\n  rows.forEach(r => {\n    const opt = document.createElement('option');\n    opt.value = r.code;\n    opt.textContent = r.label;\n    sel.appendChild(opt);\n  });\n  state.salaire.niveau = rows[0].code;\n}\n\nfunction getSalRow() {\n  const rows = SALARY_GRID[state.salaire.cat];\n  return rows.find(r => r.code === state.salaire.niveau) || rows[0];\n}\n\nfunction renderSalaire() {\n  const row = getSalRow();\n  const heures = state.salaire.heures;\n  const monthly = row.monthly * (heures \u002F 35);\n  document.getElementById('sal-val').textContent = FMT_EUR.format(monthly);\n  document.getElementById('sal-detail').textContent =\n    `Taux horaire : ${FMT_EUR.format(row.hourly)} · Base 35h\u002Fsem. = ${FMT_EUR.format(row.monthly)} · Proportionnel à ${heures}h\u002Fsem.`;\n\n  \u002F\u002F Build full grid table\n  const tbody = document.getElementById('sal-table-body');\n  const allRows = SALARY_GRID[state.salaire.cat];\n  tbody.innerHTML = '';\n  allRows.forEach(r => {\n    const tr = document.createElement('tr');\n    if (r.code === state.salaire.niveau) tr.classList.add('highlighted');\n    tr.innerHTML = `\u003Ctd>${r.label}\u003C\u002Ftd>\u003Ctd>${FMT_EUR.format(r.hourly)}\u003C\u002Ftd>\u003Ctd>${FMT_EUR.format(r.monthly)}\u003C\u002Ftd>`;\n    tbody.appendChild(tr);\n  });\n}\n\n\u002F\u002F ============================================================\n\u002F\u002F ESSAI COMPUTE\n\u002F\u002F ============================================================\nfunction computeEssai(s) {\n  const { cat } = s;\n  let duree = '', legale = '', detail = '';\n  if (cat === 'employe') {\n    duree = '1 mois';\n    legale = '2 mois';\n    detail = 'Art. L1221-19 CT prévoit un maximum de 2 mois pour les ouvriers\u002Femployés. La CCN 1505 réduit ce plafond à 1 mois. Le renouvellement n\\'est pas prévu par la convention.';\n  } else if (cat === 'am') {\n    duree = '2 mois';\n    legale = '3 mois';\n    detail = 'Art. L1221-19 CT prévoit un maximum de 3 mois pour les agents de maîtrise. La CCN 1505 réduit ce plafond à 2 mois. Le renouvellement n\\'est pas prévu par la convention.';\n  } else {\n    duree = '3 mois';\n    legale = '4 mois';\n    detail = 'Art. L1221-19 CT prévoit un maximum de 4 mois pour les cadres. La CCN 1505 réduit ce plafond à 3 mois. Le renouvellement n\\'est pas prévu par la convention.';\n  }\n  return { duree, legale, detail };\n}\n\nfunction renderEssai() {\n  const r = computeEssai(state.essai);\n  document.getElementById('essai-val').textContent = r.duree;\n  document.getElementById('essai-sub').textContent = `Maximum légal (code du travail) : ${r.legale}`;\n  document.getElementById('essai-detail').textContent = r.detail;\n}\n\n\u002F\u002F ============================================================\n\u002F\u002F TABS\n\u002F\u002F ============================================================\nconst tabBtns = document.querySelectorAll('[data-tab]');\nconst tabPanels = document.querySelectorAll('[data-panel]');\n\nfunction activate(id) {\n  tabBtns.forEach(t => {\n    t.classList.toggle('active', t.dataset.tab === id);\n    t.setAttribute('aria-selected', t.dataset.tab === id ? 'true' : 'false');\n  });\n  tabPanels.forEach(p => {\n    p.classList.toggle('active', p.dataset.panel === id);\n  });\n  if (location.hash !== '#' + id) location.hash = id;\n  requestAnimationFrame(() => {\n    const h = Math.max(document.documentElement.scrollHeight, document.body.scrollHeight);\n    parent.postMessage({ type: 'resize', height: h }, '*');\n  });\n}\n\ntabBtns.forEach(t => t.addEventListener('click', () => activate(t.dataset.tab)));\n\n\u002F\u002F ============================================================\n\u002F\u002F PREAVIS LISTENERS\n\u002F\u002F ============================================================\ndocument.getElementById('preavis-anc').addEventListener('input', function() {\n  state.preavis.anc = parseInt(this.value);\n  document.getElementById('preavis-anc-val').textContent = this.value + (this.value > 1 ? ' ans' : ' an');\n  renderPreavis();\n});\n\ndocument.querySelectorAll('#preavis-cat .pill').forEach(p => {\n  p.addEventListener('click', function() {\n    document.querySelectorAll('#preavis-cat .pill').forEach(x => x.classList.remove('active'));\n    this.classList.add('active');\n    state.preavis.cat = this.dataset.val;\n    renderPreavis();\n  });\n});\n\ndocument.querySelectorAll('#preavis-type .pill').forEach(p => {\n  p.addEventListener('click', function() {\n    document.querySelectorAll('#preavis-type .pill').forEach(x => x.classList.remove('active'));\n    this.classList.add('active');\n    state.preavis.type = this.dataset.val;\n    renderPreavis();\n  });\n});\n\n\u002F\u002F ============================================================\n\u002F\u002F SALAIRE LISTENERS\n\u002F\u002F ============================================================\ndocument.querySelectorAll('#sal-cat .pill').forEach(p => {\n  p.addEventListener('click', function() {\n    document.querySelectorAll('#sal-cat .pill').forEach(x => x.classList.remove('active'));\n    this.classList.add('active');\n    state.salaire.cat = this.dataset.val;\n    buildSalNiveauSelect();\n    renderSalaire();\n  });\n});\n\ndocument.getElementById('sal-niveau').addEventListener('change', function() {\n  state.salaire.niveau = this.value;\n  renderSalaire();\n});\n\ndocument.getElementById('sal-heures').addEventListener('input', function() {\n  state.salaire.heures = parseFloat(this.value);\n  document.getElementById('sal-heures-val').textContent = this.value + ' h';\n  renderSalaire();\n});\n\n\u002F\u002F ============================================================\n\u002F\u002F ESSAI LISTENERS\n\u002F\u002F ============================================================\ndocument.querySelectorAll('#essai-cat .pill').forEach(p => {\n  p.addEventListener('click', function() {\n    document.querySelectorAll('#essai-cat .pill').forEach(x => x.classList.remove('active'));\n    this.classList.add('active');\n    state.essai.cat = this.dataset.val;\n    renderEssai();\n  });\n});\n\n\u002F\u002F ============================================================\n\u002F\u002F INIT\n\u002F\u002F ============================================================\nbuildSalNiveauSelect();\nrenderPreavis();\nrenderSalaire();\nrenderEssai();\n\n\u002F\u002F Deep-link via hash\nconst hashTab = location.hash.slice(1);\nconst validTabs = ['preavis', 'salaire', 'essai'];\nconst initialTab = validTabs.includes(hashTab) ? hashTab : 'preavis';\nactivate(initialTab);\n\n\u002F\u002F Lucide icons\nlucide.createIcons();\n\n\u002F\u002F ResizeObserver — mandatory iframe contract\nconst ro = new ResizeObserver(() => {\n  const h = Math.max(document.documentElement.scrollHeight, document.body.scrollHeight);\n  parent.postMessage({ type: 'resize', height: h }, '*');\n});\nro.observe(document.documentElement);\n\u003C\u002Fscript>\n\u003C\u002Fbody>\n\u003C\u002Fhtml>\n","generated","juridique","consumer","both","https:\u002F\u002Fpub-bdebbd2dad294475a2da0eb657815b6b.r2.dev\u002Ftools\u002Fccn-commerce-alimentaire-non-specialise-bf9a0915cc.webp",[]]