[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"footer-root-categories-fr-FR":3,"tool-content-ccn-patisserie-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-patisserie","CCN de la pâtisserie — calculateur complet","Calculateur CCN Pâtisserie IDCC 1267 | Expert Zoom","Outil interactif couvrant l'indemnité de licenciement, le préavis, la grille salariale 2026 et les heures supplémentaires de la CCN pâtisserie (IDCC 1267).","Ce calculateur couvre les 4 principales dérogations de la convention collective de la pâtisserie (IDCC 1267) : l'indemnité de licenciement (formule légale L1234-9 applicable), le préavis structuré par catégorie (employés 1 sem. à 2 mois, agents de maîtrise 2 mois, cadres 3 mois), la grille salariale 2026 par coefficient (160 à 350), et le contingent d'heures supplémentaires réduit à 180 h\u002Fan.",[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 de la pâtisserie — IDCC 1267","WebApplication",{"name":94,"@type":95,"identifier":96},"Convention collective nationale de la pâtisserie","Thing","IDCC 1267",{"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, le préavis, la grille salariale 2026 et les heures supplémentaires de la convention collective nationale de la pâtisserie (IDCC 1267, brochure 3215).","All","FinanceApplication",true,[110,113,116,119,122,125,128,131],{"a":111,"q":112},"La CCN pâtisserie (IDCC 1267) prévoit une formule conventionnelle (1\u002F10 de mois par année jusqu'à 10 ans, 1\u002F15 au-delà), mais celle-ci est moins favorable que la loi. En pratique, c'est la formule légale de l'art. L1234-9 qui s'applique : ¼ de mois par année d'ancienneté jusqu'à 10 ans, et ⅓ de mois par année au-delà de 10 ans.","Quelle est l'indemnité de licenciement dans la convention collective pâtisserie ?",{"a":114,"q":115},"La CCN pâtisserie distingue les catégories : pour les employés et ouvriers, le préavis varie de 1 semaine (moins de 6 mois d'ancienneté) à 2 mois en cas de licenciement après 2 ans. Pour les agents de maîtrise, le préavis est de 2 mois (réciproque). Pour les cadres, il est de 3 mois (réciproque).","Quelle est la durée du préavis dans la pâtisserie selon la CCN 1267 ?",{"a":117,"q":118},"La CCN pâtisserie définit une grille de salaires par coefficient (de 160 à 350). Au coefficient 160 (niveau d'entrée), le minimum conventionnel est de 1 841,27 € brut mensuel pour 35h. Lorsque ce montant est inférieur au SMIC (1 801,80 € en janvier 2026), le SMIC s'applique. Le niveau maximal (coefficient 350) atteint 3 670,41 €.","Quel est le salaire minimum dans la convention collective pâtisserie en 2026 ?",{"a":120,"q":121},"Non, la CCN pâtisserie artisanale (IDCC 1267) ne prévoit pas de 13ème mois obligatoire. À ne pas confondre avec la CCN de l'industrie de la boulangerie et pâtisserie (IDCC 3255) qui, elle, prévoit une prime annuelle après 3 ans d'ancienneté.","Y a-t-il un 13ème mois dans la convention collective pâtisserie artisanale ?",{"a":123,"q":124},"La CCN pâtisserie (IDCC 1267) fixe un contingent d'heures supplémentaires à 180 heures par an, inférieur au contingent légal de 220 heures. Les majorations restent identiques au code du travail : +25 % pour les 8 premières heures supplémentaires (heures 36 à 43), +50 % au-delà.","Combien d'heures supplémentaires peut-on effectuer dans la pâtisserie ?",{"a":126,"q":127},"Pour un ouvrier ou employé qui démissionne, le préavis CCN pâtisserie est de 1 semaine si l'ancienneté est inférieure à 6 mois, 1 semaine si l'ancienneté est entre 6 mois et 2 ans, et 1 mois si l'ancienneté est supérieure à 2 ans.","Comment est calculé le préavis pour un ouvrier pâtissier en cas de démission ?",{"a":129,"q":130},"La CCN pâtisserie IDCC 1267 distingue quatre grandes catégories : personnel de fabrication (coefficients 160 à 350), personnel de vente (160 à 250), personnel administratif (160 à 190), et personnel de livraison (165 à 190). Chaque coefficient correspond à une qualification et à un salaire minimum.","Quels sont les niveaux de classification dans la convention collective pâtisserie ?",{"a":132,"q":133},"La CCN pâtisserie IDCC 1267 ne prévoit pas de jours de congés supplémentaires liés à l'ancienneté au-delà des 30 jours ouvrables légaux (art. L3141-3 du code du travail). Les congés suivent le régime légal standard.","La CCN pâtisserie prévoit-elle des congés supplémentaires ?","\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 Pâtisserie IDCC 1267\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      --card: #ffffff;\n      --accent: #2563eb;\n      --accent-light: #eff6ff;\n      --accent-dark: #1d4ed8;\n      --border: #e7e5e4;\n      --text: #1c1917;\n      --muted: #78716c;\n      --success: #16a34a;\n      --success-bg: #f0fdf4;\n      --warn-bg: #fffbeb;\n      --warn: #92400e;\n      --radius: 0.75rem;\n      --shadow: 0 1px 3px 0 rgba(0,0,0,.1), 0 1px 2px -1px rgba(0,0,0,.1);\n    }\n    body { font-family: system-ui, -apple-system, sans-serif; background: var(--bg); color: var(--text); font-size: 15px; line-height: 1.6; }\n    .tool-root { max-width: 680px; margin: 0 auto; padding: 1.25rem 1rem 2rem; }\n    .tool-header { margin-bottom: 1.25rem; }\n    .tool-header h1 { font-size: 1.2rem; font-weight: 700; color: var(--text); line-height: 1.3; }\n    .tool-header .idcc-badge { display: inline-block; background: var(--accent); color: #fff; font-size: 0.7rem; font-weight: 600; padding: 0.15rem 0.55rem; border-radius: 999px; margin-left: 0.5rem; vertical-align: middle; letter-spacing: 0.03em; }\n\n    \u002F* Tabs *\u002F\n    .tabs-bar { display: flex; gap: 0.25rem; border-bottom: 2px solid var(--border); margin-bottom: 1.25rem; flex-wrap: wrap; }\n    .tab-btn { background: none; border: none; padding: 0.55rem 0.9rem; font-size: 0.82rem; font-weight: 500; color: var(--muted); cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -2px; border-radius: 0.35rem 0.35rem 0 0; 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); font-weight: 600; }\n    .panel { display: none; }\n    .panel.active { display: block; }\n\n    \u002F* Cards *\u002F\n    .card { background: var(--card); border: 1px solid var(--border); border-radius: var(--radius); padding: 1.1rem 1.25rem; margin-bottom: 1rem; box-shadow: var(--shadow); }\n\n    \u002F* Rule callout *\u002F\n    .rule-callout { display: flex; gap: 0.65rem; align-items: flex-start; background: var(--accent-light); border: 1px solid #bfdbfe; border-radius: 0.6rem; padding: 0.85rem 1rem; margin-bottom: 1rem; }\n    .rule-callout svg { width: 18px; height: 18px; color: var(--accent); flex-shrink: 0; margin-top: 2px; }\n    .rule-callout p { font-size: 0.85rem; color: #1e3a8a; line-height: 1.5; }\n    .rule-callout strong { font-weight: 600; }\n\n    \u002F* Warn callout *\u002F\n    .warn-callout { display: flex; gap: 0.65rem; align-items: flex-start; background: var(--warn-bg); border: 1px solid #fcd34d; border-radius: 0.6rem; padding: 0.85rem 1rem; margin-bottom: 1rem; }\n    .warn-callout svg { width: 18px; height: 18px; color: #b45309; flex-shrink: 0; margin-top: 2px; }\n    .warn-callout p { font-size: 0.85rem; color: var(--warn); line-height: 1.5; }\n\n    \u002F* Form elements *\u002F\n    .field { margin-bottom: 1rem; }\n    .field label { display: flex; justify-content: space-between; font-size: 0.82rem; font-weight: 500; color: var(--muted); margin-bottom: 0.35rem; }\n    .field label span.val { font-weight: 600; color: var(--text); font-variant-numeric: tabular-nums; }\n    input[type=range] { width: 100%; accent-color: var(--accent); cursor: pointer; height: 6px; }\n    select { width: 100%; border: 1px solid var(--border); border-radius: 0.45rem; padding: 0.5rem 0.75rem; font-size: 0.88rem; background: var(--card); color: var(--text); cursor: pointer; appearance: auto; }\n    .pills { display: flex; gap: 0.4rem; flex-wrap: wrap; }\n    .pill { border: 1px solid var(--border); border-radius: 999px; padding: 0.3rem 0.85rem; font-size: 0.78rem; font-weight: 500; cursor: pointer; background: var(--card); color: var(--muted); transition: all .15s; }\n    .pill.active { background: var(--accent); border-color: var(--accent); color: #fff; }\n    .toggle-row { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 1rem; }\n    .toggle-row label { font-size: 0.85rem; color: var(--muted); font-weight: 500; }\n    .toggle { position: relative; width: 42px; height: 24px; }\n    .toggle 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 { position: absolute; content: \"\"; width: 18px; height: 18px; left: 3px; top: 3px; background: #fff; border-radius: 50%; transition: .2s; }\n    .toggle input:checked + .toggle-slider { background: var(--accent); }\n    .toggle input:checked + .toggle-slider:before { transform: translateX(18px); }\n\n    \u002F* Result *\u002F\n    .result-card { background: linear-gradient(135deg, var(--accent) 0%, var(--accent-dark) 100%); border-radius: var(--radius); padding: 1.25rem 1.5rem; color: #fff; margin-top: 1.25rem; }\n    .result-card .result-label { font-size: 0.78rem; font-weight: 500; opacity: 0.85; text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 0.35rem; }\n    .result-card .result-value { font-size: 2rem; font-weight: 700; font-variant-numeric: tabular-nums; letter-spacing: -0.02em; }\n    .result-card .result-sub { font-size: 0.8rem; opacity: 0.8; margin-top: 0.4rem; }\n    .result-card .result-detail { margin-top: 0.85rem; padding-top: 0.85rem; border-top: 1px solid rgba(255,255,255,.2); display: flex; flex-direction: column; gap: 0.3rem; }\n    .result-card .result-detail span { font-size: 0.8rem; opacity: 0.9; font-variant-numeric: tabular-nums; }\n\n    \u002F* Salary grid *\u002F\n    .grid-table { width: 100%; border-collapse: collapse; font-size: 0.82rem; margin-top: 0.75rem; }\n    .grid-table th { background: var(--accent-light); color: var(--accent-dark); font-weight: 600; text-align: left; padding: 0.5rem 0.7rem; border-bottom: 2px solid #bfdbfe; }\n    .grid-table td { padding: 0.45rem 0.7rem; border-bottom: 1px solid var(--border); font-variant-numeric: tabular-nums; }\n    .grid-table tr:last-child td { border-bottom: none; }\n    .grid-table tr:hover td { background: #f5f5f4; }\n    .grid-table td.highlight { font-weight: 600; color: var(--accent); }\n\n    \u002F* Disclaimer *\u002F\n    .disclaimer { font-size: 0.75rem; color: var(--muted); margin-top: 1.5rem; padding-top: 1rem; border-top: 1px solid var(--border); line-height: 1.5; }\n    .disclaimer a { color: var(--accent); text-decoration: none; }\n    .disclaimer a:hover { text-decoration: underline; }\n\n    @media (max-width: 480px) {\n      .result-card .result-value { font-size: 1.6rem; }\n      .tab-btn { padding: 0.45rem 0.6rem; font-size: 0.76rem; }\n    }\n  \u003C\u002Fstyle>\n\u003C\u002Fhead>\n\u003Cbody>\n\u003C!-- CCN IDCC 1267 — deviations detected\n     preavis: L1234-1 → tiers spécifiques (1 sem \u002F 1 mois \u002F 2 mois non-cadres; 3 mois cadres)\n     salaire-min: SMIC → grille coefficients 160-350, avenant salarial 2026\n     indemnite: L1234-9 (légal) prime sur CCN conventionnel — calcul légal s'applique (plus favorable)\n     heures-supp: contingent 180h\u002Fan vs 220h légal (source: CCN art. heures supp IDCC 1267) -->\n\n\u003Cmain class=\"tool-root\">\n  \u003Cdiv class=\"tool-header\">\n    \u003Ch1>Calculateur CCN de la pâtisserie \u003Cspan class=\"idcc-badge\">IDCC 1267\u003C\u002Fspan>\u003C\u002Fh1>\n  \u003C\u002Fdiv>\n\n  \u003Cdiv class=\"tabs-bar\">\n    \u003Cbutton class=\"tab-btn\" data-tab=\"indemnite\">Indemnité\u003C\u002Fbutton>\n    \u003Cbutton class=\"tab-btn\" data-tab=\"preavis\">Préavis\u003C\u002Fbutton>\n    \u003Cbutton class=\"tab-btn\" data-tab=\"salaire-min\">Grille salariale\u003C\u002Fbutton>\n    \u003Cbutton class=\"tab-btn\" data-tab=\"heures-supp\">Heures supp.\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 pâtisserie (IDCC 1267) prévoit une formule conventionnelle inférieure au code du travail. \u003Cstrong>Le code du travail (art. L1234-9) s'applique car plus favorable\u003C\u002Fstrong> : ¼ mois × années ≤ 10 ans + ⅓ mois × années > 10 ans.\u003C\u002Fp>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"card\">\n      \u003Cdiv class=\"field\">\n        \u003Clabel>Salaire brut de référence \u003Cspan class=\"val\" id=\"ind-sal-val\">2 000 €\u003C\u002Fspan>\u003C\u002Flabel>\n        \u003Cinput type=\"range\" id=\"ind-sal\" min=\"1400\" max=\"6000\" step=\"50\" value=\"2000\">\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"field\">\n        \u003Clabel>Ancienneté (années complètes) \u003Cspan class=\"val\" id=\"ind-anc-val\">5 ans\u003C\u002Fspan>\u003C\u002Flabel>\n        \u003Cinput type=\"range\" id=\"ind-anc\" min=\"1\" max=\"40\" step=\"1\" value=\"5\">\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"field\">\n        \u003Clabel style=\"margin-bottom:.5rem;\">Motif du licenciement\u003C\u002Flabel>\n        \u003Cdiv class=\"pills\">\n          \u003Cdiv class=\"pill active\" data-motif=\"personnel\">Motif personnel\u003C\u002Fdiv>\n          \u003Cdiv class=\"pill\" data-motif=\"eco\">Motif économique\u003C\u002Fdiv>\n        \u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"result-card\" id=\"ind-result\">\n      \u003Cdiv class=\"result-label\">Indemnité brute estimée (légale)\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-value\" id=\"ind-amount\">— €\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-sub\">Formule L1234-9 applicable (plus favorable)\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-detail\">\n        \u003Cspan id=\"ind-detail-1\">\u003C\u002Fspan>\n        \u003Cspan id=\"ind-detail-2\">\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\n  \u003C!-- ══════════════════════════════════ PANEL PRÉAVIS ══════════════════════════════════ -->\n  \u003Cdiv class=\"panel\" data-panel=\"preavis\">\n    \u003Cdiv class=\"rule-callout\">\n      \u003Ci data-lucide=\"info\">\u003C\u002Fi>\n      \u003Cp>La CCN pâtisserie établit des \u003Cstrong>durées de préavis spécifiques par catégorie et ancienneté\u003C\u002Fstrong>, distinctes du code du travail (art. L1234-1). Pour les cadres : \u003Cstrong>3 mois\u003C\u002Fstrong>. Pour les agents de maîtrise : \u003Cstrong>2 mois\u003C\u002Fstrong>. Pour les employés\u002Fouvriers : de 1 semaine à 2 mois selon l'ancienneté.\u003C\u002Fp>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"card\">\n      \u003Cdiv class=\"field\">\n        \u003Clabel style=\"margin-bottom:.5rem;\">Catégorie professionnelle\u003C\u002Flabel>\n        \u003Cdiv class=\"pills\">\n          \u003Cdiv class=\"pill active\" data-cat=\"employe\">Employé \u002F Ouvrier\u003C\u002Fdiv>\n          \u003Cdiv class=\"pill\" data-cat=\"maitrise\">Agent de maîtrise\u003C\u002Fdiv>\n          \u003Cdiv class=\"pill\" data-cat=\"cadre\">Cadre\u003C\u002Fdiv>\n        \u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"field\" id=\"preavis-anc-field\">\n        \u003Clabel>Ancienneté \u003Cspan class=\"val\" id=\"preavis-anc-val\">3 ans\u003C\u002Fspan>\u003C\u002Flabel>\n        \u003Cinput type=\"range\" id=\"preavis-anc\" min=\"0\" max=\"30\" step=\"1\" value=\"3\">\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"field\">\n        \u003Clabel style=\"margin-bottom:.5rem;\">Sens du préavis\u003C\u002Flabel>\n        \u003Cdiv class=\"pills\">\n          \u003Cdiv class=\"pill active\" data-sens=\"demission\">Démission\u003C\u002Fdiv>\n          \u003Cdiv class=\"pill\" data-sens=\"licenciement\">Licenciement\u003C\u002Fdiv>\n        \u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"result-card\" id=\"preavis-result\">\n      \u003Cdiv class=\"result-label\">Durée de préavis conventionnel\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-value\" id=\"preavis-duration\">—\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-sub\" id=\"preavis-sub\">Selon CCN pâtisserie IDCC 1267\u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\n  \u003C!-- ══════════════════════════════════ PANEL GRILLE SALARIALE ══════════════════════════════════ -->\n  \u003Cdiv class=\"panel\" data-panel=\"salaire-min\">\n    \u003Cdiv class=\"rule-callout\">\n      \u003Ci data-lucide=\"info\">\u003C\u002Fi>\n      \u003Cp>La CCN pâtisserie définit une \u003Cstrong>grille de salaires conventionnels par coefficient\u003C\u002Fstrong> (160 à 350) selon la catégorie et l'échelon. En cas de minima inférieurs au SMIC (1 801,80 € brut mensuel pour 35h en 2026), \u003Cstrong>le SMIC s'applique\u003C\u002Fstrong>.\u003C\u002Fp>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"card\">\n      \u003Cdiv class=\"field\">\n        \u003Clabel style=\"margin-bottom:.5rem;\">Catégorie\u003C\u002Flabel>\n        \u003Cselect id=\"sal-cat\">\n          \u003Coption value=\"fabrication\">Personnel de fabrication\u003C\u002Foption>\n          \u003Coption value=\"vente\">Personnel de vente\u003C\u002Foption>\n          \u003Coption value=\"admin\">Personnel administratif\u003C\u002Foption>\n          \u003Coption value=\"livraison\">Personnel de livraison\u003C\u002Foption>\n        \u003C\u002Fselect>\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"field\">\n        \u003Clabel style=\"margin-bottom:.5rem;\">Niveau \u002F Coefficient\u003C\u002Flabel>\n        \u003Cselect id=\"sal-coef\">\n          \u003Coption value=\"160\">160\u003C\u002Foption>\n          \u003Coption value=\"170\">170\u003C\u002Foption>\n          \u003Coption value=\"180\">180\u003C\u002Foption>\n          \u003Coption value=\"190\">190\u003C\u002Foption>\n          \u003Coption value=\"200\">200\u003C\u002Foption>\n          \u003Coption value=\"215\">215\u003C\u002Foption>\n          \u003Coption value=\"230\">230\u003C\u002Foption>\n          \u003Coption value=\"250\">250\u003C\u002Foption>\n          \u003Coption value=\"270\">270\u003C\u002Foption>\n          \u003Coption value=\"300\">300\u003C\u002Foption>\n          \u003Coption value=\"325\">325\u003C\u002Foption>\n          \u003Coption value=\"350\">350\u003C\u002Foption>\n        \u003C\u002Fselect>\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"field\">\n        \u003Clabel>Durée hebdomadaire \u003Cspan class=\"val\" id=\"sal-h-val\">35 h\u002Fsem\u003C\u002Fspan>\u003C\u002Flabel>\n        \u003Cinput type=\"range\" id=\"sal-h\" min=\"24\" max=\"39\" step=\"0.5\" value=\"35\">\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"result-card\" id=\"sal-result\">\n      \u003Cdiv class=\"result-label\">Salaire conventionnel brut mensuel\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-value\" id=\"sal-amount\">—\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-sub\" id=\"sal-sub\">Grille CCN pâtisserie 2026\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-detail\">\n        \u003Cspan id=\"sal-detail-coef\">\u003C\u002Fspan>\n        \u003Cspan id=\"sal-detail-smic\">\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv style=\"margin-top:1rem;\">\n      \u003Cp style=\"font-size:0.8rem;font-weight:600;color:var(--muted);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.04em;\">Grille complète 2026\u003C\u002Fp>\n      \u003Ctable class=\"grid-table\">\n        \u003Cthead>\n          \u003Ctr>\u003Cth>Coefficient\u003C\u002Fth>\u003Cth>Mensuel brut (35h)\u003C\u002Fth>\u003Cth>Applicable\u003C\u002Fth>\u003C\u002Ftr>\n        \u003C\u002Fthead>\n        \u003Ctbody>\n          \u003Ctr>\u003Ctd>160\u003C\u002Ftd>\u003Ctd>1 841,27 €\u003C\u002Ftd>\u003Ctd>SMIC (1 801,80 €)\u003C\u002Ftd>\u003C\u002Ftr>\n          \u003Ctr>\u003Ctd>170\u003C\u002Ftd>\u003Ctd>1 862,87 €\u003C\u002Ftd>\u003Ctd>SMIC si inférieur\u003C\u002Ftd>\u003C\u002Ftr>\n          \u003Ctr>\u003Ctd>180\u003C\u002Ftd>\u003Ctd>1 905,43 €\u003C\u002Ftd>\u003Ctd>Conventionnel\u003C\u002Ftd>\u003C\u002Ftr>\n          \u003Ctr>\u003Ctd>190\u003C\u002Ftd>\u003Ctd>2 011,14 €\u003C\u002Ftd>\u003Ctd>Conventionnel\u003C\u002Ftd>\u003C\u002Ftr>\n          \u003Ctr>\u003Ctd>200\u003C\u002Ftd>\u003Ctd>2 116,85 €\u003C\u002Ftd>\u003Ctd>Conventionnel\u003C\u002Ftd>\u003C\u002Ftr>\n          \u003Ctr>\u003Ctd>215\u003C\u002Ftd>\u003Ctd>2 273,42 €\u003C\u002Ftd>\u003Ctd>Conventionnel\u003C\u002Ftd>\u003C\u002Ftr>\n          \u003Ctr>\u003Ctd>230\u003C\u002Ftd>\u003Ctd>2 429,99 €\u003C\u002Ftd>\u003Ctd>Conventionnel\u003C\u002Ftd>\u003C\u002Ftr>\n          \u003Ctr>\u003Ctd>250\u003C\u002Ftd>\u003Ctd>2 637,43 €\u003C\u002Ftd>\u003Ctd>Conventionnel\u003C\u002Ftd>\u003C\u002Ftr>\n          \u003Ctr>\u003Ctd>270\u003C\u002Ftd>\u003Ctd>2 844,88 €\u003C\u002Ftd>\u003Ctd>Conventionnel\u003C\u002Ftd>\u003C\u002Ftr>\n          \u003Ctr>\u003Ctd>300\u003C\u002Ftd>\u003Ctd>3 155,56 €\u003C\u002Ftd>\u003Ctd>Conventionnel\u003C\u002Ftd>\u003C\u002Ftr>\n          \u003Ctr>\u003Ctd>325\u003C\u002Ftd>\u003Ctd>3 414,14 €\u003C\u002Ftd>\u003Ctd>Conventionnel\u003C\u002Ftd>\u003C\u002Ftr>\n          \u003Ctr>\u003Ctd>350\u003C\u002Ftd>\u003Ctd>3 670,41 €\u003C\u002Ftd>\u003Ctd>Conventionnel\u003C\u002Ftd>\u003C\u002Ftr>\n        \u003C\u002Ftbody>\n      \u003C\u002Ftable>\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\n  \u003C!-- ══════════════════════════════════ PANEL HEURES SUPP ══════════════════════════════════ -->\n  \u003Cdiv class=\"panel\" data-panel=\"heures-supp\">\n    \u003Cdiv class=\"rule-callout\">\n      \u003Ci data-lucide=\"info\">\u003C\u002Fi>\n      \u003Cp>La CCN pâtisserie prévoit un \u003Cstrong>contingent d'heures supplémentaires de 180 heures\u002Fan\u003C\u002Fstrong>, inférieur au contingent légal de 220 h (art. L3121-33). Les taux de majoration sont identiques au code du travail : \u003Cstrong>+25 % pour les 8 premières heures\u003C\u002Fstrong>, \u003Cstrong>+50 % au-delà\u003C\u002Fstrong>.\u003C\u002Fp>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"card\">\n      \u003Cdiv class=\"field\">\n        \u003Clabel>Salaire horaire brut \u003Cspan class=\"val\" id=\"hs-taux-val\">12,00 €\u002Fh\u003C\u002Fspan>\u003C\u002Flabel>\n        \u003Cinput type=\"range\" id=\"hs-taux\" min=\"11.88\" max=\"35\" step=\"0.25\" value=\"12\">\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"field\">\n        \u003Clabel>Heures sup. semaines 36–43 (tranche 25 %) \u003Cspan class=\"val\" id=\"hs-h1-val\">4 h\u003C\u002Fspan>\u003C\u002Flabel>\n        \u003Cinput type=\"range\" id=\"hs-h1\" min=\"0\" max=\"8\" step=\"0.5\" value=\"4\">\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"field\">\n        \u003Clabel>Heures sup. au-delà de 43h (tranche 50 %) \u003Cspan class=\"val\" id=\"hs-h2-val\">0 h\u003C\u002Fspan>\u003C\u002Flabel>\n        \u003Cinput type=\"range\" id=\"hs-h2\" min=\"0\" max=\"10\" step=\"0.5\" value=\"0\">\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"result-card\" id=\"hs-result\">\n      \u003Cdiv class=\"result-label\">Majoration brute des heures supplémentaires\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-value\" id=\"hs-amount\">—\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-sub\" id=\"hs-sub\">—\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-detail\">\n        \u003Cspan id=\"hs-detail-25\">\u003C\u002Fspan>\n        \u003Cspan id=\"hs-detail-50\">\u003C\u002Fspan>\n        \u003Cspan id=\"hs-detail-contingent\">\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\n  \u003Cp class=\"disclaimer\">\n    Calcul indicatif basé sur la CCN IDCC 1267 (pâtisserie, brochure 3215).\n    Source : \u003Ca href=\"https:\u002F\u002Fwww.legifrance.gouv.fr\u002Fconv_coll\u002Fid\u002FKALICONT000005635611\" target=\"_blank\" rel=\"noopener\">Légifrance\u003C\u002Fa>.\n    Données salariales 2026 selon avenant salarial en vigueur.\n    Pour validation légale\n  \u003C\u002Fp>\n\u003C\u002Fmain>\n\n\u003Cscript>\n\u002F\u002F ──────────────────────────────────────────\n\u002F\u002F Resize observer (iframe contract)\n\u002F\u002F ──────────────────────────────────────────\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\n\u002F\u002F ──────────────────────────────────────────\n\u002F\u002F Formatters\n\u002F\u002F ──────────────────────────────────────────\nconst fmtEUR = v => new Intl.NumberFormat('fr-FR', { style: 'currency', currency: 'EUR', maximumFractionDigits: 0 }).format(v);\nconst fmtEUR2 = v => new Intl.NumberFormat('fr-FR', { style: 'currency', currency: 'EUR', minimumFractionDigits: 2, maximumFractionDigits: 2 }).format(v);\n\n\u002F\u002F ──────────────────────────────────────────\n\u002F\u002F Tab system\n\u002F\u002F ──────────────────────────────────────────\nconst tabBtns = document.querySelectorAll('.tab-btn');\nconst panels = document.querySelectorAll('.panel');\n\nfunction activate(id) {\n  tabBtns.forEach(t => t.classList.toggle('active', t.dataset.tab === id));\n  panels.forEach(p => p.classList.toggle('active', p.dataset.panel === id));\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\nconst hashTab = location.hash.slice(1);\nconst validTabs = ['indemnite', 'preavis', 'salaire-min', 'heures-supp'];\nactivate(validTabs.includes(hashTab) ? hashTab : 'indemnite');\n\n\u002F\u002F ──────────────────────────────────────────\n\u002F\u002F Lucide icons\n\u002F\u002F ──────────────────────────────────────────\nlucide.createIcons();\n\n\u002F\u002F ══════════════════════════════════════════\n\u002F\u002F INDEMNITÉ\n\u002F\u002F ══════════════════════════════════════════\nconst indState = { sal: 2000, anc: 5, motif: 'personnel' };\n\nfunction computeInd(s) {\n  \u002F\u002F Code du travail L1234-9 (plus favorable que CCN)\n  const anc1 = Math.min(s.anc, 10);\n  const anc2 = Math.max(s.anc - 10, 0);\n  const tranche1 = s.sal * (1 \u002F 4) * anc1;\n  const tranche2 = s.sal * (1 \u002F 3) * anc2;\n  return { total: tranche1 + tranche2, tranche1, tranche2, anc1, anc2 };\n}\n\nfunction renderInd() {\n  const r = computeInd(indState);\n  document.getElementById('ind-amount').textContent = fmtEUR(r.total);\n  document.getElementById('ind-detail-1').textContent =\n    `Tranche ≤ 10 ans : ${indState.sal} × ¼ × ${r.anc1} an${r.anc1 > 1 ? 's' : ''} = ${fmtEUR(r.tranche1)}`;\n  document.getElementById('ind-detail-2').textContent = r.anc2 > 0\n    ? `Tranche > 10 ans : ${indState.sal} × ⅓ × ${r.anc2} an${r.anc2 > 1 ? 's' : ''} = ${fmtEUR(r.tranche2)}`\n    : `Ancienneté ≤ 10 ans — une seule tranche applicable`;\n}\n\ndocument.getElementById('ind-sal').addEventListener('input', e => {\n  indState.sal = +e.target.value;\n  document.getElementById('ind-sal-val').textContent = fmtEUR(indState.sal);\n  renderInd();\n});\ndocument.getElementById('ind-anc').addEventListener('input', e => {\n  indState.anc = +e.target.value;\n  document.getElementById('ind-anc-val').textContent = `${indState.anc} an${indState.anc > 1 ? 's' : ''}`;\n  renderInd();\n});\ndocument.querySelectorAll('[data-motif]').forEach(p => p.addEventListener('click', () => {\n  document.querySelectorAll('[data-motif]').forEach(x => x.classList.remove('active'));\n  p.classList.add('active');\n  indState.motif = p.dataset.motif;\n  renderInd();\n}));\nrenderInd();\n\n\u002F\u002F ══════════════════════════════════════════\n\u002F\u002F PRÉAVIS\n\u002F\u002F ══════════════════════════════════════════\nconst preState = { cat: 'employe', anc: 3, sens: 'demission' };\n\nfunction computePreavis(s) {\n  if (s.cat === 'cadre') return { dur: '3 mois', sub: 'Pour les cadres — préavis réciproque CCN IDCC 1267' };\n  if (s.cat === 'maitrise') return { dur: '2 mois', sub: 'Pour les agents de maîtrise — préavis réciproque CCN IDCC 1267' };\n  \u002F\u002F Employés \u002F Ouvriers\n  if (s.anc \u003C 0.5) {\n    return { dur: '1 semaine', sub: 'Ancienneté \u003C 6 mois — préavis réciproque' };\n  }\n  if (s.anc \u003C 2) {\n    if (s.sens === 'licenciement') return { dur: '1 mois', sub: 'Ancienneté ≥ 6 mois et \u003C 2 ans, licenciement' };\n    return { dur: '1 semaine', sub: 'Ancienneté ≥ 6 mois et \u003C 2 ans, démission' };\n  }\n  \u002F\u002F anc >= 2 ans\n  if (s.sens === 'licenciement') return { dur: '2 mois', sub: 'Ancienneté ≥ 2 ans, licenciement — plus favorable que légal' };\n  return { dur: '1 mois', sub: 'Ancienneté ≥ 2 ans, démission' };\n}\n\nfunction renderPreavis() {\n  const r = computePreavis(preState);\n  document.getElementById('preavis-duration').textContent = r.dur;\n  document.getElementById('preavis-sub').textContent = r.sub;\n  \u002F\u002F hide\u002Fshow ancienneté field for non-cadre\u002Fmaitrise\n  document.getElementById('preavis-anc-field').style.display =\n    (preState.cat === 'cadre' || preState.cat === 'maitrise') ? 'none' : 'block';\n}\n\ndocument.getElementById('preavis-anc').addEventListener('input', e => {\n  preState.anc = +e.target.value;\n  document.getElementById('preavis-anc-val').textContent = `${preState.anc} an${preState.anc > 1 ? 's' : ''}`;\n  renderPreavis();\n});\ndocument.querySelectorAll('[data-cat]').forEach(p => p.addEventListener('click', () => {\n  document.querySelectorAll('[data-cat]').forEach(x => x.classList.remove('active'));\n  p.classList.add('active');\n  preState.cat = p.dataset.cat;\n  renderPreavis();\n}));\ndocument.querySelectorAll('[data-sens]').forEach(p => p.addEventListener('click', () => {\n  document.querySelectorAll('[data-sens]').forEach(x => x.classList.remove('active'));\n  p.classList.add('active');\n  preState.sens = p.dataset.sens;\n  renderPreavis();\n}));\nrenderPreavis();\n\n\u002F\u002F ══════════════════════════════════════════\n\u002F\u002F GRILLE SALARIALE\n\u002F\u002F ══════════════════════════════════════════\n\u002F\u002F Grille 2026 CCN 1267 — valeurs mensuelles brutes pour 35h\nconst grille2026 = {\n  160: 1841.27,\n  170: 1862.87,\n  180: 1905.43,\n  190: 2011.14,\n  200: 2116.85,\n  215: 2273.42,\n  230: 2429.99,\n  250: 2637.43,\n  270: 2844.88,\n  300: 3155.56,\n  325: 3414.14,\n  350: 3670.41\n};\nconst SMIC_MENSUEL_2026 = 1801.80; \u002F\u002F SMIC brut 35h janvier 2026\n\nconst salState = { cat: 'fabrication', coef: 160, h: 35 };\n\nfunction computeSal(s) {\n  const base35 = grille2026[s.coef] || 1841.27;\n  const prorata = base35 * (s.h \u002F 35);\n  const applicable = Math.max(prorata, SMIC_MENSUEL_2026 * (s.h \u002F 35));\n  return { base35, prorata, applicable, isSmic: prorata \u003C SMIC_MENSUEL_2026 * (s.h \u002F 35) };\n}\n\nfunction renderSal() {\n  const r = computeSal(salState);\n  document.getElementById('sal-amount').textContent = fmtEUR2(r.applicable);\n  document.getElementById('sal-sub').textContent =\n    `Grille CCN pâtisserie 2026 — coef. ${salState.coef} — ${salState.h}h\u002Fsem`;\n  document.getElementById('sal-detail-coef').textContent =\n    `Valeur conventionnelle (35h) : ${fmtEUR2(r.base35)}`;\n  document.getElementById('sal-detail-smic').textContent =\n    r.isSmic\n      ? `SMIC appliqué (${fmtEUR2(SMIC_MENSUEL_2026 * (salState.h \u002F 35))}) — minima conventionnel inférieur`\n      : `Salaire conventionnel applicable`;\n}\n\ndocument.getElementById('sal-cat').addEventListener('change', e => { salState.cat = e.target.value; renderSal(); });\ndocument.getElementById('sal-coef').addEventListener('change', e => { salState.coef = +e.target.value; renderSal(); });\ndocument.getElementById('sal-h').addEventListener('input', e => {\n  salState.h = +e.target.value;\n  document.getElementById('sal-h-val').textContent = `${salState.h} h\u002Fsem`;\n  renderSal();\n});\nrenderSal();\n\n\u002F\u002F ══════════════════════════════════════════\n\u002F\u002F HEURES SUPPLÉMENTAIRES\n\u002F\u002F ══════════════════════════════════════════\nconst hsState = { taux: 12, h1: 4, h2: 0 };\n\nfunction computeHS(s) {\n  const maj25 = s.taux * s.h1 * 0.25;\n  const maj50 = s.taux * s.h2 * 0.50;\n  const totalHS = s.taux * (s.h1 + s.h2);\n  const totalMaj = maj25 + maj50;\n  return { maj25, maj50, totalHS, totalMaj };\n}\n\nfunction renderHS() {\n  const r = computeHS(hsState);\n  const totalHs = hsState.h1 + hsState.h2;\n  document.getElementById('hs-amount').textContent = fmtEUR2(r.totalMaj);\n  document.getElementById('hs-sub').textContent =\n    `Majoration sur ${totalHs} heure${totalHs > 1 ? 's' : ''} supplémentaire${totalHs > 1 ? 's' : ''}`;\n  document.getElementById('hs-detail-25').textContent =\n    hsState.h1 > 0\n      ? `Tranche 25 % : ${hsState.h1} h × ${hsState.taux.toFixed(2)} € × 25 % = ${fmtEUR2(r.maj25)}`\n      : `Tranche 25 % : 0 h`;\n  document.getElementById('hs-detail-50').textContent =\n    hsState.h2 > 0\n      ? `Tranche 50 % : ${hsState.h2} h × ${hsState.taux.toFixed(2)} € × 50 % = ${fmtEUR2(r.maj50)}`\n      : `Tranche 50 % : 0 h`;\n  document.getElementById('hs-detail-contingent').textContent =\n    `Contingent CCN : 180 h\u002Fan (vs 220 h légal)`;\n}\n\ndocument.getElementById('hs-taux').addEventListener('input', e => {\n  hsState.taux = +e.target.value;\n  document.getElementById('hs-taux-val').textContent = `${parseFloat(e.target.value).toFixed(2)} €\u002Fh`;\n  renderHS();\n});\ndocument.getElementById('hs-h1').addEventListener('input', e => {\n  hsState.h1 = +e.target.value;\n  document.getElementById('hs-h1-val').textContent = `${e.target.value} h`;\n  renderHS();\n});\ndocument.getElementById('hs-h2').addEventListener('input', e => {\n  hsState.h2 = +e.target.value;\n  document.getElementById('hs-h2-val').textContent = `${e.target.value} h`;\n  renderHS();\n});\nrenderHS();\n\u003C\u002Fscript>\n\u003C\u002Fbody>\n\u003C\u002Fhtml>\n","generated","juridique","consumer","both","https:\u002F\u002Fpub-bdebbd2dad294475a2da0eb657815b6b.r2.dev\u002Ftools\u002Fccn-patisserie-2dd08f3bfa.webp",[]]