[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"footer-root-categories-fr-FR":3,"tool-content-ccn-des-entreprises-d-architecture-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-des-entreprises-d-architecture","CCN des entreprises d'architecture — calculateur complet","Calculateur CCN Entreprises d'architecture IDCC 2332 | Expert Zoom","Outil interactif couvrant l'indemnité de licenciement, le préavis, la grille salariale et les heures supplémentaires de la CCN des entreprises d'architecture (IDCC 2332).","Ce calculateur couvre les 4 déviations de la CCN des entreprises d'architecture (IDCC 2332) par rapport au code du travail : indemnité de licenciement avec plancher de 2 mois, préavis par statut et ancienneté, grille salariale coefficients × valeur du point, et contingent d'heures supplémentaires réduit à 80 % du légal.",[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 Entreprises d'architecture — IDCC 2332","WebApplication",{"name":94,"@type":95,"identifier":96},"Convention collective des entreprises d'architecture","Thing","IDCC 2332",{"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 et les heures supplémentaires de la convention collective des entreprises d'architecture (IDCC 2332).","All","FinanceApplication",true,[110,113,116,119,122,125,128,131],{"a":111,"q":112},"La CCN architecture (IDCC 2332) applique la formule légale : 1\u002F4 de mois de salaire brut par année d'ancienneté pour les 10 premières années, puis 1\u002F3 de mois au-delà. Elle ajoute un plancher garanti de 2 mois de salaire brut, plus favorable que le code du travail. En cas d'inaptitude professionnelle, l'indemnité est doublée.","Comment calculer l'indemnité de licenciement dans la convention collective des entreprises d'architecture ?",{"a":114,"q":115},"La CCN 2332 fixe des durées de préavis selon le statut et l'ancienneté. Pour les non-cadres en cas de licenciement : 2 semaines (moins de 6 mois), 1 mois (6 mois à 2 ans), 2 mois (2 ans et plus). Pour les cadres : 1 mois, 2 mois, puis 3 mois selon les mêmes tranches d'ancienneté.","Quelle est la durée du préavis dans la CCN des entreprises d'architecture ?",{"a":117,"q":118},"La grille salariale de la CCN architecture repose sur un système de coefficients hiérarchiques multipliés par une valeur du point fixée à 9 € au niveau national. Les coefficients s'échelonnent de 212 pour un employé débutant à 700 pour un directeur de projet. Des accords régionaux (Île-de-France, Auvergne, Lorraine…) peuvent prévoir des valeurs du point supérieures.","Quelle est la grille de salaires de la convention collective architecture IDCC 2332 ?",{"a":120,"q":121},"Non, la convention collective nationale des entreprises d'architecture (IDCC 2332) ne prévoit pas de 13ème mois obligatoire. Ce complément peut être accordé par usage d'entreprise ou accord de branche régional, mais il n'est pas prévu par le texte national.","La CCN architecture prévoit-elle un 13ème mois ?",{"a":123,"q":124},"La CCN architecture limite le contingent annuel d'heures supplémentaires à 80 % du contingent légal (soit environ 130 heures). Au-delà de ce contingent conventionnel, un repos compensateur obligatoire s'applique : 50 % pour les entreprises de moins de 10 salariés, dès la 36e heure pour les entreprises de 10 salariés et plus. Les majorations de salaire suivent les taux légaux (25 % pour les 8 premières heures, 50 % au-delà).","Quelles sont les règles sur les heures supplémentaires dans la CCN 2332 ?",{"a":126,"q":127},"Non, la CCN architecture IDCC 2332 prévoit les 30 jours ouvrables légaux (2,5 jours par mois travaillé), conformément à l'article L3141-3 du code du travail. Elle n'octroie pas de jours supplémentaires au niveau national, bien que des accords d'entreprise puissent en prévoir.","Les congés payés sont-ils majorés dans la convention collective architecture ?",{"a":129,"q":130},"Oui, les durées diffèrent. En cas de démission, les préavis sont plus courts : non-cadre 1 semaine (moins de 6 mois), 2 semaines (6 mois-2 ans), 1 mois (2 ans et plus). Pour les cadres : 2 semaines, 1 mois, 2 mois selon les mêmes tranches. Les préavis de licenciement sont systématiquement plus longs.","Le préavis de démission est-il différent du préavis de licenciement dans la CCN 2332 ?",{"a":132,"q":133},"La CCN IDCC 2332 s'applique aux salariés des cabinets et bureaux d'architectes, urbanistes, paysagistes et bureaux d'études techniques liés à l'architecture, exerçant sur le territoire français. Elle couvre les employés, ETAM (employés, techniciens et agents de maîtrise) et cadres de ces structures.","Qui est couvert par la convention collective des entreprises d'architecture IDCC 2332 ?","\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 Entreprises d'architecture — IDCC 2332\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      --border: #e7e5e4;\n      --accent: #2563eb;\n      --accent-light: #eff6ff;\n      --accent-hover: #1d4ed8;\n      --text: #1c1917;\n      --muted: #78716c;\n      --callout-bg: #eff6ff;\n      --callout-border: #bfdbfe;\n      --result-bg: #1e3a5f;\n      --radius: 0.75rem;\n      --shadow: 0 1px 3px rgba(0,0,0,0.08), 0 1px 2px rgba(0,0,0,0.05);\n    }\n    body {\n      font-family: system-ui, -apple-system, sans-serif;\n      background: var(--bg);\n      color: var(--text);\n      font-size: 0.9375rem;\n      line-height: 1.5;\n      padding: 1rem;\n    }\n    .tool-root { max-width: 680px; margin: 0 auto; }\n\n    \u002F* Header *\u002F\n    .tool-header {\n      display: flex; align-items: flex-start; justify-content: space-between;\n      margin-bottom: 1.25rem; gap: 1rem; flex-wrap: wrap;\n    }\n    .tool-header h1 { font-size: 1.125rem; font-weight: 700; line-height: 1.3; }\n    .tool-header p { font-size: 0.8125rem; color: var(--muted); margin-top: 0.2rem; }\n    .idcc-badge {\n      background: var(--accent); color: #fff; font-size: 0.75rem; font-weight: 600;\n      padding: 0.25rem 0.625rem; border-radius: 999px; white-space: nowrap; flex-shrink: 0;\n    }\n\n    \u002F* Tabs *\u002F\n    .tab-bar {\n      display: flex; gap: 0.25rem; border-bottom: 2px solid var(--border);\n      margin-bottom: 1.25rem; overflow-x: auto; padding-bottom: 0;\n      scrollbar-width: none;\n    }\n    .tab-bar::-webkit-scrollbar { display: none; }\n    .tab-btn {\n      display: flex; align-items: center; gap: 0.375rem;\n      padding: 0.5rem 0.875rem; border: none; background: none; cursor: pointer;\n      font-size: 0.875rem; font-weight: 500; color: var(--muted);\n      border-bottom: 2px solid transparent; margin-bottom: -2px;\n      white-space: nowrap; transition: color 0.15s, border-color 0.15s;\n    }\n    .tab-btn:hover { color: var(--accent); }\n    .tab-btn.active { color: var(--accent); border-bottom-color: var(--accent); }\n    .tab-btn i { width: 15px; height: 15px; }\n\n    \u002F* Panel *\u002F\n    .panel { display: none; }\n    .panel.active { display: block; }\n\n    \u002F* Rule callout *\u002F\n    .rule-callout {\n      display: flex; gap: 0.625rem; align-items: flex-start;\n      background: var(--callout-bg); border: 1px solid var(--callout-border);\n      border-radius: var(--radius); padding: 0.875rem 1rem; margin-bottom: 1.25rem;\n    }\n    .rule-callout i { width: 16px; height: 16px; color: var(--accent); flex-shrink: 0; margin-top: 0.125rem; }\n    .rule-callout p { font-size: 0.8125rem; color: #1e40af; line-height: 1.5; }\n    .rule-callout strong { font-weight: 600; }\n\n    \u002F* Form grid *\u002F\n    .form-grid { display: grid; gap: 1rem; margin-bottom: 1.25rem; }\n    .field { display: flex; flex-direction: column; gap: 0.375rem; }\n    label { font-size: 0.8125rem; font-weight: 600; color: var(--text); }\n    .field-row { display: flex; align-items: center; justify-content: space-between; }\n    .field-row label { margin-bottom: 0; }\n    .field-val {\n      font-size: 0.8125rem; font-weight: 700; color: var(--accent);\n      font-variant-numeric: tabular-nums;\n    }\n    input[type=range] {\n      width: 100%; accent-color: var(--accent); height: 4px;\n      cursor: pointer;\n    }\n    select {\n      width: 100%; padding: 0.5rem 0.75rem; border: 1px solid var(--border);\n      border-radius: 0.5rem; font-size: 0.875rem; background: #fff; cursor: pointer;\n      color: var(--text);\n    }\n    select:focus { outline: 2px solid var(--accent); outline-offset: 1px; }\n\n    \u002F* Pills *\u002F\n    .pills { display: flex; flex-wrap: wrap; gap: 0.375rem; }\n    .pill {\n      padding: 0.375rem 0.75rem; border: 1.5px solid var(--border); border-radius: 999px;\n      font-size: 0.8125rem; cursor: pointer; background: #fff; color: var(--text);\n      font-weight: 500; transition: all 0.15s; user-select: none;\n    }\n    .pill.active { background: var(--accent); border-color: var(--accent); color: #fff; }\n\n    \u002F* Result card *\u002F\n    .result-card {\n      background: var(--result-bg); color: #fff; border-radius: var(--radius);\n      padding: 1.125rem 1.25rem; margin-bottom: 1rem;\n      box-shadow: var(--shadow);\n    }\n    .result-label { font-size: 0.75rem; opacity: 0.7; text-transform: uppercase; letter-spacing: 0.05em; }\n    .result-value {\n      font-size: 1.875rem; font-weight: 800; margin-top: 0.125rem;\n      font-variant-numeric: tabular-nums;\n    }\n    .result-sub { font-size: 0.8125rem; opacity: 0.75; margin-top: 0.25rem; }\n    .result-detail { margin-top: 0.75rem; font-size: 0.8125rem; opacity: 0.85; }\n    .result-detail span { display: block; opacity: 0.9; }\n\n    \u002F* Info box *\u002F\n    .info-box {\n      background: var(--card); border: 1px solid var(--border); border-radius: var(--radius);\n      padding: 0.875rem 1rem; font-size: 0.8125rem; color: var(--muted);\n      margin-bottom: 1rem;\n    }\n    .info-box strong { color: var(--text); }\n\n    \u002F* Table *\u002F\n    .tbl-wrap { overflow-x: auto; margin-bottom: 1rem; }\n    table { width: 100%; border-collapse: collapse; font-size: 0.8125rem; }\n    th { background: var(--accent-light); color: var(--accent); font-weight: 600;\n         padding: 0.5rem 0.75rem; text-align: left; }\n    td { padding: 0.5rem 0.75rem; border-bottom: 1px solid var(--border); }\n    tr:last-child td { border-bottom: none; }\n    tr.active-row td { background: #eff6ff; font-weight: 600; color: var(--accent); }\n\n    \u002F* Disclaimer *\u002F\n    .disclaimer {\n      font-size: 0.75rem; color: var(--muted); text-align: center;\n      padding-top: 1rem; border-top: 1px solid var(--border); margin-top: 1rem;\n      line-height: 1.6;\n    }\n    .disclaimer a { color: var(--accent); text-decoration: none; }\n    .disclaimer a:hover { text-decoration: underline; }\n  \u003C\u002Fstyle>\n\u003C\u002Fhead>\n\u003Cbody>\n\u003C!-- CCN IDCC 2332 — deviations\n     indemnite: L1234-9 → formule identique MAIS plancher de 2 mois de salaire (source: CCN art. sur l'indemnité de licenciement)\n     preavis: L1234-1 → durées spécifiques non-cadre (2 sem \u002F 1 mois \u002F 2 mois) et cadre (1 mois \u002F 2 mois \u002F 3 mois) selon ancienneté\n     salaire-min: SMIC → grille coefficients × valeur du point (9 €) avec niveaux hiérarchiques\n     heures-supp: L3121-36 → contingent 80% légal, repos compensateur > contingent\n-->\n\u003Cmain class=\"tool-root\">\n  \u003Cdiv class=\"tool-header\">\n    \u003Cdiv>\n      \u003Ch1>CCN Entreprises d'Architecture\u003C\u002Fh1>\n      \u003Cp>Calculateur complet — indemnité, préavis, grille salariale, heures supp\u003C\u002Fp>\n    \u003C\u002Fdiv>\n    \u003Cspan class=\"idcc-badge\">IDCC 2332\u003C\u002Fspan>\n  \u003C\u002Fdiv>\n\n  \u003Cnav class=\"tab-bar\" role=\"tablist\">\n    \u003Cbutton class=\"tab-btn\" data-tab=\"indemnite\" role=\"tab\">\n      \u003Ci data-lucide=\"calculator\">\u003C\u002Fi> Indemnité\n    \u003C\u002Fbutton>\n    \u003Cbutton class=\"tab-btn\" data-tab=\"preavis\" role=\"tab\">\n      \u003Ci data-lucide=\"clock\">\u003C\u002Fi> Préavis\n    \u003C\u002Fbutton>\n    \u003Cbutton class=\"tab-btn\" data-tab=\"salaire-min\" role=\"tab\">\n      \u003Ci data-lucide=\"bar-chart-2\">\u003C\u002Fi> Grille salariale\n    \u003C\u002Fbutton>\n    \u003Cbutton class=\"tab-btn\" data-tab=\"heures-supp\" role=\"tab\">\n      \u003Ci data-lucide=\"trending-up\">\u003C\u002Fi> Heures supp\n    \u003C\u002Fbutton>\n  \u003C\u002Fnav>\n\n  \u003C!-- =================== ONGLET INDEMNITÉ =================== -->\n  \u003Csection class=\"panel\" data-panel=\"indemnite\" id=\"panel-indemnite\">\n    \u003Cdiv class=\"rule-callout\">\n      \u003Ci data-lucide=\"info\">\u003C\u002Fi>\n      \u003Cp>La CCN architecture (IDCC 2332) applique la formule légale \u003Cstrong>(1\u002F4 mois × années ≤ 10 ans + 1\u002F3 mois × années > 10 ans)\u003C\u002Fstrong> mais garantit un \u003Cstrong>plancher de 2 mois de salaire brut\u003C\u002Fstrong>, plus favorable que le code du travail (art. L1234-9).\u003C\u002Fp>\n    \u003C\u002Fdiv>\n    \u003Cdiv class=\"form-grid\">\n      \u003Cdiv class=\"field\">\n        \u003Cdiv class=\"field-row\">\n          \u003Clabel for=\"ind-salaire\">Salaire brut mensuel de référence\u003C\u002Flabel>\n          \u003Cspan class=\"field-val\" id=\"ind-salaire-val\">2 500 €\u003C\u002Fspan>\n        \u003C\u002Fdiv>\n        \u003Cinput type=\"range\" id=\"ind-salaire\" min=\"1400\" max=\"8000\" step=\"50\" value=\"2500\">\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"field\">\n        \u003Cdiv class=\"field-row\">\n          \u003Clabel for=\"ind-anciennete\">Ancienneté (années)\u003C\u002Flabel>\n          \u003Cspan class=\"field-val\" id=\"ind-anciennete-val\">5 ans\u003C\u002Fspan>\n        \u003C\u002Fdiv>\n        \u003Cinput type=\"range\" id=\"ind-anciennete\" min=\"1\" max=\"35\" step=\"1\" value=\"5\">\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"field\">\n        \u003Clabel>Motif du licenciement\u003C\u002Flabel>\n        \u003Cdiv class=\"pills\" id=\"ind-motif-pills\">\n          \u003Cdiv class=\"pill active\" data-val=\"economique\">Économique\u003C\u002Fdiv>\n          \u003Cdiv class=\"pill\" data-val=\"personnel\">Personnel\u003C\u002Fdiv>\n          \u003Cdiv class=\"pill\" data-val=\"inaptitude\">Inaptitude professionnelle\u003C\u002Fdiv>\n        \u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n    \u003Cdiv class=\"result-card\" id=\"ind-result\">\n      \u003Cdiv class=\"result-label\">Indemnité de licenciement\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-value\" id=\"ind-montant\">—\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-sub\" id=\"ind-detail-sub\">\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-detail\" id=\"ind-detail\">\u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n    \u003Cdiv class=\"info-box\">\n      \u003Cstrong>Plancher CCN :\u003C\u002Fstrong> Si le montant calculé est inférieur à 2 mois de salaire brut, la CCN garantit ce minimum. En cas d'inaptitude d'origine professionnelle avec impossibilité de reclassement, l'indemnité est doublée.\n    \u003C\u002Fdiv>\n  \u003C\u002Fsection>\n\n  \u003C!-- =================== ONGLET PRÉAVIS =================== -->\n  \u003Csection class=\"panel\" data-panel=\"preavis\" id=\"panel-preavis\">\n    \u003Cdiv class=\"rule-callout\">\n      \u003Ci data-lucide=\"info\">\u003C\u002Fi>\n      \u003Cp>La CCN architecture fixe des durées de préavis propres selon le statut et l'ancienneté, \u003Cstrong>plus longues que la loi pour les cadres\u003C\u002Fstrong> (jusqu'à 3 mois de licenciement). Les durées sont symétriques mais différentes entre licenciement et démission.\u003C\u002Fp>\n    \u003C\u002Fdiv>\n    \u003Cdiv class=\"form-grid\">\n      \u003Cdiv class=\"field\">\n        \u003Clabel>Statut professionnel\u003C\u002Flabel>\n        \u003Cdiv class=\"pills\" id=\"pre-statut-pills\">\n          \u003Cdiv class=\"pill active\" data-val=\"non-cadre\">Non-cadre (ETAM \u002F Employé)\u003C\u002Fdiv>\n          \u003Cdiv class=\"pill\" data-val=\"cadre\">Cadre\u003C\u002Fdiv>\n        \u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"field\">\n        \u003Clabel>Type de rupture\u003C\u002Flabel>\n        \u003Cdiv class=\"pills\" id=\"pre-type-pills\">\n          \u003Cdiv class=\"pill active\" data-val=\"licenciement\">Licenciement\u003C\u002Fdiv>\n          \u003Cdiv class=\"pill\" data-val=\"demission\">Démission\u003C\u002Fdiv>\n          \u003Cdiv class=\"pill\" data-val=\"retraite\">Départ retraite\u003C\u002Fdiv>\n        \u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"field\">\n        \u003Clabel>Ancienneté\u003C\u002Flabel>\n        \u003Cdiv class=\"pills\" id=\"pre-anc-pills\">\n          \u003Cdiv class=\"pill active\" data-val=\"lt6m\">&lt; 6 mois\u003C\u002Fdiv>\n          \u003Cdiv class=\"pill\" data-val=\"6m-2a\">6 mois – 2 ans\u003C\u002Fdiv>\n          \u003Cdiv class=\"pill\" data-val=\"gte2a\">≥ 2 ans\u003C\u002Fdiv>\n        \u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n    \u003Cdiv class=\"result-card\" id=\"pre-result\">\n      \u003Cdiv class=\"result-label\">Durée du préavis\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-value\" id=\"pre-duree\">—\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-sub\" id=\"pre-detail\">\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-detail\" id=\"pre-absences\">\u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n    \u003Cdiv class=\"tbl-wrap\">\n      \u003Ctable>\n        \u003Cthead>\n          \u003Ctr>\u003Cth>Ancienneté\u003C\u002Fth>\u003Cth>Non-cadre – licenciement\u003C\u002Fth>\u003Cth>Cadre – licenciement\u003C\u002Fth>\u003C\u002Ftr>\n        \u003C\u002Fthead>\n        \u003Ctbody>\n          \u003Ctr id=\"pre-row-lt6m\">\u003Ctd>&lt; 6 mois\u003C\u002Ftd>\u003Ctd>2 semaines\u003C\u002Ftd>\u003Ctd>1 mois\u003C\u002Ftd>\u003C\u002Ftr>\n          \u003Ctr id=\"pre-row-6m2a\">\u003Ctd>6 mois – 2 ans\u003C\u002Ftd>\u003Ctd>1 mois\u003C\u002Ftd>\u003Ctd>2 mois\u003C\u002Ftd>\u003C\u002Ftr>\n          \u003Ctr id=\"pre-row-gte2a\">\u003Ctd>≥ 2 ans\u003C\u002Ftd>\u003Ctd>2 mois\u003C\u002Ftd>\u003Ctd>3 mois\u003C\u002Ftd>\u003C\u002Ftr>\n        \u003C\u002Ftbody>\n      \u003C\u002Ftable>\n    \u003C\u002Fdiv>\n  \u003C\u002Fsection>\n\n  \u003C!-- =================== ONGLET GRILLE SALARIALE =================== -->\n  \u003Csection class=\"panel\" data-panel=\"salaire-min\" id=\"panel-salaire-min\">\n    \u003Cdiv class=\"rule-callout\">\n      \u003Ci data-lucide=\"info\">\u003C\u002Fi>\n      \u003Cp>La CCN architecture établit une grille de salaires minimaux par coefficient hiérarchique, calculée selon la formule : \u003Cstrong>coefficient × valeur du point (9 €)\u003C\u002Fstrong>. Les accords régionaux peuvent augmenter ce minimum.\u003C\u002Fp>\n    \u003C\u002Fdiv>\n    \u003Cdiv class=\"form-grid\">\n      \u003Cdiv class=\"field\">\n        \u003Clabel for=\"sal-niveau\">Niveau \u002F coefficient hiérarchique\u003C\u002Flabel>\n        \u003Cselect id=\"sal-niveau\">\n          \u003Coption value=\"212\">Niveau I — coeff. 212 (employé débutant)\u003C\u002Foption>\n          \u003Coption value=\"230\">Niveau II — coeff. 230 (agent technique)\u003C\u002Foption>\n          \u003Coption value=\"260\">Niveau III — coeff. 260 (technicien)\u003C\u002Foption>\n          \u003Coption value=\"300\">Niveau IV — coeff. 300 (dessinateur projeteur)\u003C\u002Foption>\n          \u003Coption value=\"350\">Niveau V — coeff. 350 (chef de projet junior)\u003C\u002Foption>\n          \u003Coption value=\"400\">Niveau VI — coeff. 400 (chef de projet)\u003C\u002Foption>\n          \u003Coption value=\"480\">Niveau VII — coeff. 480 (architecte diplômé)\u003C\u002Foption>\n          \u003Coption value=\"580\">Niveau VIII — coeff. 580 (architecte senior)\u003C\u002Foption>\n          \u003Coption value=\"700\">Niveau IX — coeff. 700 (directeur de projet)\u003C\u002Foption>\n        \u003C\u002Fselect>\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"field\">\n        \u003Cdiv class=\"field-row\">\n          \u003Clabel for=\"sal-heures\">Durée hebdomadaire (h)\u003C\u002Flabel>\n          \u003Cspan class=\"field-val\" id=\"sal-heures-val\">35 h\u003C\u002Fspan>\n        \u003C\u002Fdiv>\n        \u003Cinput type=\"range\" id=\"sal-heures\" min=\"17.5\" max=\"39\" step=\"0.5\" value=\"35\">\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n    \u003Cdiv class=\"result-card\" id=\"sal-result\">\n      \u003Cdiv class=\"result-label\">Salaire minimum mensuel brut\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-value\" id=\"sal-montant\">—\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-sub\" id=\"sal-detail\">\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-detail\" id=\"sal-horaire\">\u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n    \u003Cdiv class=\"info-box\">\n      \u003Cstrong>Valeur du point :\u003C\u002Fstrong> 9 € (accord national). Certains accords régionaux (Île-de-France, Auvergne, Lorraine…) prévoient des valeurs supérieures. Le salaire conventionnel ne peut être inférieur au \u003Cstrong>SMIC en vigueur\u003C\u002Fstrong>.\n    \u003C\u002Fdiv>\n  \u003C\u002Fsection>\n\n  \u003C!-- =================== ONGLET HEURES SUPP =================== -->\n  \u003Csection class=\"panel\" data-panel=\"heures-supp\" id=\"panel-heures-supp\">\n    \u003Cdiv class=\"rule-callout\">\n      \u003Ci data-lucide=\"info\">\u003C\u002Fi>\n      \u003Cp>La CCN architecture prévoit un contingent annuel d'heures supplémentaires \u003Cstrong>limité à 80 % du contingent légal\u003C\u002Fstrong>. Les majorations suivent L3121-36 (25 % pour les 8 premières heures) mais le repos compensateur est déclenché dès le dépassement du contingent conventionnel.\u003C\u002Fp>\n    \u003C\u002Fdiv>\n    \u003Cdiv class=\"form-grid\">\n      \u003Cdiv class=\"field\">\n        \u003Cdiv class=\"field-row\">\n          \u003Clabel for=\"hs-salaire\">Salaire brut mensuel\u003C\u002Flabel>\n          \u003Cspan class=\"field-val\" id=\"hs-salaire-val\">2 500 €\u003C\u002Fspan>\n        \u003C\u002Fdiv>\n        \u003Cinput type=\"range\" id=\"hs-salaire\" min=\"1400\" max=\"8000\" step=\"50\" value=\"2500\">\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"field\">\n        \u003Cdiv class=\"field-row\">\n          \u003Clabel for=\"hs-heures\">Heures supplémentaires cette semaine\u003C\u002Flabel>\n          \u003Cspan class=\"field-val\" id=\"hs-heures-val\">4 h\u003C\u002Fspan>\n        \u003C\u002Fdiv>\n        \u003Cinput type=\"range\" id=\"hs-heures\" min=\"1\" max=\"15\" step=\"1\" value=\"4\">\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"field\">\n        \u003Clabel>Taille de l'entreprise\u003C\u002Flabel>\n        \u003Cdiv class=\"pills\" id=\"hs-taille-pills\">\n          \u003Cdiv class=\"pill active\" data-val=\"lt10\">Moins de 10 salariés\u003C\u002Fdiv>\n          \u003Cdiv class=\"pill\" data-val=\"gte10\">10 salariés et plus\u003C\u002Fdiv>\n        \u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n    \u003Cdiv class=\"result-card\" id=\"hs-result\">\n      \u003Cdiv class=\"result-label\">Rémunération heures supp (semaine)\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-value\" id=\"hs-montant\">—\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-sub\" id=\"hs-detail-sub\">\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-detail\" id=\"hs-detail\">\u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n    \u003Cdiv class=\"info-box\">\n      \u003Cstrong>Contingent conventionnel :\u003C\u002Fstrong> Environ 130 h\u002Fan (80 % du contingent légal de 220 h). Au-delà, un repos compensateur obligatoire s'applique : 50 % pour les entreprises &lt; 10 salariés, dès la 36e heure pour les entreprises ≥ 10 salariés.\n    \u003C\u002Fdiv>\n  \u003C\u002Fsection>\n\n  \u003Cp class=\"disclaimer\">\n    Calcul indicatif basé sur la CCN IDCC 2332 (Entreprises d'architecture).\n    Source : \u003Ca href=\"https:\u002F\u002Fwww.legifrance.gouv.fr\u002Fconv_coll\u002Fid\u002FKALICONT000005635365\" target=\"_blank\" rel=\"noopener\">Légifrance\u003C\u002Fa>.\n    Pour validation légale\n  \u003C\u002Fp>\n\u003C\u002Fmain>\n\n\u003Cscript>\n\u002F\u002F ===== STATE =====\nconst state = {\n  indemnite: { salaire: 2500, anciennete: 5, motif: 'economique' },\n  preavis: { statut: 'non-cadre', type: 'licenciement', anciennete: 'lt6m' },\n  salaireMin: { niveau: 212, heures: 35 },\n  heuresSupp: { salaire: 2500, heures: 4, taille: 'lt10' }\n};\n\nconst fmt = new Intl.NumberFormat('fr-FR', { style: 'currency', currency: 'EUR', maximumFractionDigits: 0 });\nconst fmtDec = new Intl.NumberFormat('fr-FR', { style: 'currency', currency: 'EUR', maximumFractionDigits: 2 });\n\n\u002F\u002F ===== INDEMNITÉ CALCUL =====\nfunction computeIndemnite(s) {\n  const { salaire, anciennete, motif } = s;\n  let montant = 0;\n  if (anciennete \u003C= 10) {\n    montant = salaire * (1\u002F4) * anciennete;\n  } else {\n    montant = salaire * (1\u002F4) * 10 + salaire * (1\u002F3) * (anciennete - 10);\n  }\n  const plancher = salaire * 2;\n  let final = Math.max(montant, plancher);\n  let doubled = false;\n  if (motif === 'inaptitude') {\n    final = final * 2;\n    doubled = true;\n  }\n  return { montant: final, base: montant, plancher, doubled };\n}\n\nfunction renderIndemnite() {\n  const s = state.indemnite;\n  const r = computeIndemnite(s);\n  document.getElementById('ind-salaire-val').textContent = fmt.format(s.salaire);\n  document.getElementById('ind-anciennete-val').textContent = s.anciennete + ' an' + (s.anciennete > 1 ? 's' : '');\n  document.getElementById('ind-montant').textContent = fmt.format(r.montant);\n  const applied = r.base \u003C r.plancher ? 'plancher CCN de 2 mois' : 'formule légale + CCN';\n  document.getElementById('ind-detail-sub').textContent = 'Base calculée appliquée : ' + applied;\n  let detail = 'Calcul : ' + fmt.format(s.salaire) + ' × ';\n  if (s.anciennete \u003C= 10) {\n    detail += '(1\u002F4 × ' + s.anciennete + ' an' + (s.anciennete > 1 ? 's' : '') + ')';\n  } else {\n    detail += '(1\u002F4 × 10 + 1\u002F3 × ' + (s.anciennete - 10) + ')';\n  }\n  detail += ' = ' + fmt.format(r.base);\n  if (r.doubled) detail += ' × 2 (inaptitude professionnelle)';\n  document.getElementById('ind-detail').innerHTML = '\u003Cspan>' + detail + '\u003C\u002Fspan>';\n}\n\n\u002F\u002F ===== PRÉAVIS CALCUL =====\nconst preTable = {\n  'non-cadre': {\n    licenciement: { lt6m: '2 semaines', '6m-2a': '1 mois', gte2a: '2 mois' },\n    demission:    { lt6m: '1 semaine', '6m-2a': '2 semaines', gte2a: '1 mois' },\n    retraite:     { lt6m: '3 mois', '6m-2a': '3 mois', gte2a: '3 mois' }\n  },\n  cadre: {\n    licenciement: { lt6m: '1 mois', '6m-2a': '2 mois', gte2a: '3 mois' },\n    demission:    { lt6m: '2 semaines', '6m-2a': '1 mois', gte2a: '2 mois' },\n    retraite:     { lt6m: '3 mois', '6m-2a': '3 mois', gte2a: '3 mois' }\n  }\n};\nconst absenceTable = {\n  lt6m: '7 heures',\n  '6m-2a': '14 heures',\n  gte2a: '28 heures'\n};\n\nfunction renderPreavis() {\n  const s = state.preavis;\n  const duree = preTable[s.statut][s.type][s.anciennete];\n  document.getElementById('pre-duree').textContent = duree;\n  const typeLabel = { licenciement: 'Licenciement', demission: 'Démission', retraite: 'Départ retraite' };\n  document.getElementById('pre-detail').textContent = typeLabel[s.type] + ' — ' + (s.statut === 'cadre' ? 'Cadre' : 'Non-cadre');\n  const absences = s.type === 'licenciement' ? absenceTable[s.anciennete] : '—';\n  const absText = s.type === 'licenciement'\n    ? 'Absences rémunérées pour recherche d\\'emploi : ' + absences\n    : 'Absences pour recherche d\\'emploi : non applicable (démission\u002Fretraite)';\n  document.getElementById('pre-absences').innerHTML = '\u003Cspan>' + absText + '\u003C\u002Fspan>';\n\n  \u002F\u002F Highlight active row in table\n  ['lt6m', '6m2a', 'gte2a'].forEach(r => {\n    const row = document.getElementById('pre-row-' + r);\n    if (row) row.classList.remove('active-row');\n  });\n  const rowMap = { lt6m: 'lt6m', '6m-2a': '6m2a', gte2a: 'gte2a' };\n  const activeRow = document.getElementById('pre-row-' + rowMap[s.anciennete]);\n  if (activeRow) activeRow.classList.add('active-row');\n}\n\n\u002F\u002F ===== SALAIRE MIN CALCUL =====\nfunction computeSalaireMin(s) {\n  const valPoint = 9;\n  const baseMensuel = s.niveau * valPoint;\n  \u002F\u002F Adjust for part-time\n  const ratio = s.heures \u002F 35;\n  const mensuelProrate = baseMensuel * ratio;\n  const horaire = baseMensuel \u002F (35 * 52 \u002F 12);\n  return { mensuel: mensuelProrate, horaire, coeff: s.niveau, base35: baseMensuel };\n}\n\nfunction renderSalaireMin() {\n  const s = state.salaireMin;\n  const r = computeSalaireMin(s);\n  document.getElementById('sal-heures-val').textContent = s.heures + ' h';\n  document.getElementById('sal-montant').textContent = fmtDec.format(r.mensuel);\n  document.getElementById('sal-detail').textContent = 'Coeff. ' + r.coeff + ' × 9 € = ' + fmt.format(r.base35) + '\u002Fmois (35h)';\n  document.getElementById('sal-horaire').innerHTML = '\u003Cspan>Taux horaire : ' + fmtDec.format(r.horaire) + ' \u002F h\u003C\u002Fspan>';\n}\n\n\u002F\u002F ===== HEURES SUPP CALCUL =====\nfunction computeHeuresSupp(s) {\n  const salaireMensuel = s.salaire;\n  const salaireHoraire = salaireMensuel \u002F (35 * 52 \u002F 12);\n  \u002F\u002F First 8 hours: +25%, beyond: +50%\n  const h25 = Math.min(s.heures, 8);\n  const h50 = Math.max(0, s.heures - 8);\n  const montant25 = h25 * salaireHoraire * 1.25;\n  const montant50 = h50 * salaireHoraire * 1.50;\n  const total = montant25 + montant50;\n  return { total, h25, h50, montant25, montant50, salaireHoraire };\n}\n\nfunction renderHeuresSupp() {\n  const s = state.heuresSupp;\n  const r = computeHeuresSupp(s);\n  document.getElementById('hs-salaire-val').textContent = fmt.format(s.salaire);\n  document.getElementById('hs-heures-val').textContent = s.heures + ' h';\n  document.getElementById('hs-montant').textContent = fmtDec.format(r.total);\n  document.getElementById('hs-detail-sub').textContent = 'Taux horaire de base : ' + fmtDec.format(r.salaireHoraire) + ' \u002F h';\n  let detail = '';\n  if (r.h25 > 0) detail += r.h25 + ' h × +25 % = ' + fmtDec.format(r.montant25) + '\\n';\n  if (r.h50 > 0) detail += r.h50 + ' h × +50 % = ' + fmtDec.format(r.montant50);\n  document.getElementById('hs-detail').innerHTML = detail.trim().split('\\n').map(l => '\u003Cspan>' + l + '\u003C\u002Fspan>').join('');\n}\n\n\u002F\u002F ===== PILL HELPERS =====\nfunction setupPills(containerId, stateKey, subKey, renderFn) {\n  const container = document.getElementById(containerId);\n  if (!container) return;\n  container.querySelectorAll('.pill').forEach(pill => {\n    pill.addEventListener('click', () => {\n      container.querySelectorAll('.pill').forEach(p => p.classList.remove('active'));\n      pill.classList.add('active');\n      state[stateKey][subKey] = pill.dataset.val;\n      renderFn();\n    });\n  });\n}\n\n\u002F\u002F ===== TABS =====\nconst tabs = document.querySelectorAll('[data-tab]');\nconst panels = document.querySelectorAll('[data-panel]');\n\nfunction activate(id) {\n  tabs.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    window.dispatchEvent(new Event('resize'));\n    notifyResize();\n  });\n}\n\ntabs.forEach(t => t.addEventListener('click', () => activate(t.dataset.tab)));\nconst hashTab = location.hash.slice(1);\nconst firstTab = tabs[0] ? tabs[0].dataset.tab : 'indemnite';\nactivate(document.querySelector('[data-tab=\"' + hashTab + '\"]') ? hashTab : firstTab);\n\n\u002F\u002F ===== RESIZE OBSERVER =====\nfunction notifyResize() {\n  const h = Math.max(document.documentElement.scrollHeight, document.body.scrollHeight);\n  parent.postMessage({ type: 'resize', height: h }, '*');\n}\nconst ro = new ResizeObserver(() => notifyResize());\nro.observe(document.documentElement);\n\n\u002F\u002F ===== WIRE INPUTS =====\n\u002F\u002F Indemnité\ndocument.getElementById('ind-salaire').addEventListener('input', e => {\n  state.indemnite.salaire = +e.target.value; renderIndemnite();\n});\ndocument.getElementById('ind-anciennete').addEventListener('input', e => {\n  state.indemnite.anciennete = +e.target.value; renderIndemnite();\n});\nsetupPills('ind-motif-pills', 'indemnite', 'motif', renderIndemnite);\n\n\u002F\u002F Préavis\nsetupPills('pre-statut-pills', 'preavis', 'statut', renderPreavis);\nsetupPills('pre-type-pills', 'preavis', 'type', renderPreavis);\nsetupPills('pre-anc-pills', 'preavis', 'anciennete', renderPreavis);\n\n\u002F\u002F Salaire min\ndocument.getElementById('sal-niveau').addEventListener('change', e => {\n  state.salaireMin.niveau = +e.target.value; renderSalaireMin();\n});\ndocument.getElementById('sal-heures').addEventListener('input', e => {\n  state.salaireMin.heures = +e.target.value; renderSalaireMin();\n});\n\n\u002F\u002F Heures supp\ndocument.getElementById('hs-salaire').addEventListener('input', e => {\n  state.heuresSupp.salaire = +e.target.value; renderHeuresSupp();\n});\ndocument.getElementById('hs-heures').addEventListener('input', e => {\n  state.heuresSupp.heures = +e.target.value; renderHeuresSupp();\n});\nsetupPills('hs-taille-pills', 'heuresSupp', 'taille', renderHeuresSupp);\n\n\u002F\u002F ===== INITIAL RENDER =====\ndocument.addEventListener('DOMContentLoaded', () => {\n  lucide.createIcons();\n  renderIndemnite();\n  renderPreavis();\n  renderSalaireMin();\n  renderHeuresSupp();\n});\n\u002F\u002F Also call immediately in case DOMContentLoaded already fired\nif (document.readyState !== 'loading') {\n  lucide.createIcons();\n  renderIndemnite();\n  renderPreavis();\n  renderSalaireMin();\n  renderHeuresSupp();\n}\n\u003C\u002Fscript>\n\u003C\u002Fbody>\n\u003C\u002Fhtml>\n","generated","juridique","consumer","both","https:\u002F\u002Fpub-bdebbd2dad294475a2da0eb657815b6b.r2.dev\u002Ftools\u002Fccn-des-entreprises-d-architecture-da32ccd38a.webp",[]]