[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"footer-root-categories-fr-FR":3,"tool-content-ccn-entreprises-du-secteur-prive-du-spectacle-vivant-fr":83,"footer-cities-fr":146},[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":140,"source":141,"category":142,"audience":143,"publish_mode":144,"hero_image":145,"hero_image_alt":85},"ccn-entreprises-du-secteur-prive-du-spectacle-vivant","CCN des entreprises du secteur privé du spectacle vivant — calculateur complet","Calculateur CCN Spectacle Vivant Privé IDCC 3090 | Expert Zoom","Outil interactif couvrant indemnité, préavis, 13e mois, prime d'ancienneté, heures supplémentaires et grille salariale de la CCN des entreprises du secteur privé du spectacle vivant (IDCC 3090).","Ce calculateur interactif couvre les 5 principaux avantages conventionnels de la CCN IDCC 3090 (spectacle vivant privé) : l'indemnité de licenciement (formule en 3 tranches), la durée du préavis (licenciement, démission, retraite), le 13e mois obligatoire et la prime d'ancienneté progressive, les majorations d'heures supplémentaires par annexe sectorielle (variétés ou cabaret), et la grille salariale conventionnelle actualisée au 1er février 2024.",[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 Spectacle Vivant Privé — IDCC 3090","WebApplication",{"name":94,"@type":95,"identifier":96},"Convention collective des entreprises du secteur privé du spectacle vivant","Thing","IDCC 3090",{"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 prime annuelle (13e mois), la prime d'ancienneté, les heures supplémentaires et la grille salariale de la convention collective des entreprises du secteur privé du spectacle vivant (IDCC 3090).","All","FinanceApplication",true,[110,113,116,119,122,125,128,131,134,137],{"a":111,"q":112},"La CCN IDCC 3090 prévoit une formule propre : 1\u002F5 de mois de salaire par année d'ancienneté pour les 5 premières années, 1\u002F4 de mois par année entre 5 et 11 ans, puis 1\u002F4 + 1\u002F15 de mois par année au-delà de 11 ans. Le salarié doit justifier d'au moins 8 mois d'ancienneté ininterrompue.","Comment calculer l'indemnité de licenciement dans la convention collective du spectacle vivant privé (IDCC 3090) ?",{"a":114,"q":115},"Pour un licenciement, le préavis est de 1 mois si l'ancienneté est inférieure à 2 ans, et de 2 mois au-delà. Pour une démission, la durée conventionnelle est de 3 mois. En cas de départ ou mise à la retraite, le préavis est de 6 mois.","Quelle est la durée du préavis dans la CCN du spectacle vivant privé ?",{"a":117,"q":118},"Oui, la CCN IDCC 3090 rend le 13e mois obligatoire pour les salariés permanents. Il est versé en deux fois : 50 % en juin et 50 % en décembre, correspondant à un mois de salaire brut supplémentaire.","Le 13e mois est-il obligatoire pour les salariés du spectacle vivant privé ?",{"a":120,"q":121},"La prime d'ancienneté est progressive : +3 % du salaire brut mensuel après 3 ans d'ancienneté, +6 % après 6 ans, +9 % après 9 ans, +12 % après 12 ans, et plafonnée à +15 % à partir de 15 ans d'ancienneté. Elle s'applique sur l'ensemble des mois de l'année.","Comment fonctionne la prime d'ancienneté dans la CCN 3090 ?",{"a":123,"q":124},"Les taux varient selon l'annexe sectorielle. Pour les variétés, jazz et musiques actuelles (Annexe II) : +25 % pour les heures 36 à 45, +35 % pour les heures 46 à 90, et +50 % au-delà. Pour les cabarets (Annexe III) : +10 % (h36–39), +20 % (h40–43) et +50 % à partir de la 44e heure. Le contingent annuel conventionnel est de 250 heures.","Quels sont les taux de majoration des heures supplémentaires dans le spectacle vivant privé ?",{"a":126,"q":127},"Selon l'avenant de février 2024, les minima vont de 1 777,90 € brut mensuel pour le personnel d'exécution (Catégorie 1) à 3 423,49 € pour les cadres dirigeants (Catégorie 7), pour une base de 151,67 heures par mois (35h\u002Fsemaine).","Quels sont les salaires minimaux conventionnels de la CCN spectacle vivant privé en 2024 ?",{"a":129,"q":130},"La CCN reprend la base légale de 30 jours ouvrables (5 semaines) et y ajoute des jours d'ancienneté : +1 jour ouvrable à partir de 10 ans d'ancienneté, puis un jour supplémentaire tous les 5 ans. Des congés spéciaux pour événements familiaux sont également prévus (mariage : 5 jours, naissance : 3 jours).","Les congés payés sont-ils plus favorables dans la CCN 3090 ?",{"a":132,"q":133},"La CCN IDCC 3090 couvre les entreprises privées du spectacle vivant, incluant les théâtres privés, les salles de concert, les cabarets, les cirques, les tournées, et les spectacles de variétés. Elle s'applique aussi bien aux artistes interprètes qu'aux techniciens, personnels administratifs et cadres de direction.","Quels artistes et salariés sont couverts par la CCN du spectacle vivant privé ?",{"a":135,"q":136},"La CCN distingue les personnels permanents (CDI) des intermittents du spectacle (CDDU). Certaines dispositions, notamment sur la grille salariale et les conditions de travail, s'appliquent aussi aux intermittents. Les artistes et techniciens sous CDDU relèvent en revanche principalement des annexes 8 et 10 de l'assurance chômage pour leur régime d'indemnisation.","La CCN 3090 s'applique-t-elle aux artistes sous CDDU (contrat à durée déterminée d'usage) ?",{"a":138,"q":139},"La CCN 3090 comporte des clauses générales communes et six annexes sectorielles : Annexe I (théâtre dramatique, lyrique, chorégraphique, musique classique), Annexe II (chanson, variétés, jazz, musiques actuelles), Annexe III (cabarets), Annexe IV (tournées), Annexe V (cirques), Annexe VI (bals avec ou sans orchestre). Chaque annexe peut prévoir des conditions spécifiques de travail et de rémunération.","Comment est organisée la CCN du spectacle vivant privé en annexes ?","\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 Spectacle Vivant Privé — IDCC 3090\u003C\u002Ftitle>\n  \u003Cscript src=\"https:\u002F\u002Funpkg.com\u002Flucide@latest\u002Fdist\u002Fumd\u002Flucide.min.js\">\u003C\u002Fscript>\n  \u003Cstyle>\n    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\n    :root {\n      --bg: #fafaf9;\n      --surface: #ffffff;\n      --border: #e7e5e4;\n      --accent: #2563eb;\n      --accent-light: #eff6ff;\n      --accent-dark: #1d4ed8;\n      --text: #1c1917;\n      --text-muted: #78716c;\n      --success-bg: #f0fdf4;\n      --success-border: #bbf7d0;\n      --success-text: #166534;\n      --info-bg: #eff6ff;\n      --info-border: #bfdbfe;\n      --info-text: #1e40af;\n      --radius: 0.75rem;\n      --radius-sm: 0.5rem;\n    }\n    body {\n      font-family: system-ui, -apple-system, sans-serif;\n      background: var(--bg);\n      color: var(--text);\n      font-size: 0.9375rem;\n      line-height: 1.6;\n      padding: 1rem;\n    }\n    .tool-root { max-width: 680px; margin: 0 auto; }\n\n    \u002F* Header *\u002F\n    .tool-header {\n      display: flex; align-items: flex-start; justify-content: space-between;\n      gap: 0.75rem; margin-bottom: 1.25rem; flex-wrap: wrap;\n    }\n    .tool-header h1 { font-size: 1.1rem; font-weight: 700; color: var(--text); line-height: 1.3; }\n    .tool-header p { font-size: 0.8125rem; color: var(--text-muted); margin-top: 0.2rem; }\n    .idcc-badge {\n      background: var(--accent); color: #fff;\n      font-size: 0.75rem; font-weight: 700;\n      padding: 0.2rem 0.6rem; border-radius: 2rem;\n      white-space: nowrap; flex-shrink: 0;\n    }\n\n    \u002F* Tab Nav *\u002F\n    .tab-nav {\n      display: flex; gap: 0; border-bottom: 2px solid var(--border);\n      overflow-x: auto; scrollbar-width: none; margin-bottom: 1.25rem;\n    }\n    .tab-nav::-webkit-scrollbar { display: none; }\n    .tab-btn {\n      border: none; background: none; cursor: pointer;\n      padding: 0.6rem 0.9rem;\n      font-size: 0.8125rem; font-weight: 600; color: var(--text-muted);\n      border-bottom: 2px solid transparent; margin-bottom: -2px;\n      white-space: nowrap; transition: color 0.15s;\n      display: flex; align-items: center; gap: 0.35rem;\n    }\n    .tab-btn:hover { color: var(--accent); }\n    .tab-btn.active { color: var(--accent); border-bottom-color: var(--accent); }\n\n    \u002F* Panel *\u002F\n    .tab-panel { display: none; }\n    .tab-panel.active { display: block; }\n\n    \u002F* Rule callout *\u002F\n    .rule-callout {\n      background: var(--info-bg); border: 1px solid var(--info-border);\n      border-radius: var(--radius-sm); padding: 0.75rem 1rem;\n      display: flex; gap: 0.6rem; align-items: flex-start;\n      margin-bottom: 1.1rem;\n    }\n    .rule-callout i { color: var(--accent); flex-shrink: 0; margin-top: 0.1rem; }\n    .rule-callout p { font-size: 0.8375rem; color: var(--info-text); line-height: 1.5; }\n\n    \u002F* Form groups *\u002F\n    .form-group { margin-bottom: 1rem; }\n    label { display: block; font-size: 0.8125rem; font-weight: 600; margin-bottom: 0.35rem; color: var(--text); }\n    .label-row { display: flex; justify-content: space-between; align-items: baseline; }\n    .label-val { font-size: 0.8125rem; font-weight: 700; color: var(--accent); font-variant-numeric: tabular-nums; }\n\n    input[type=\"range\"] {\n      width: 100%; accent-color: var(--accent); cursor: pointer; height: 4px;\n    }\n    select {\n      width: 100%; padding: 0.5rem 0.75rem; border: 1px solid var(--border);\n      border-radius: var(--radius-sm); font-size: 0.875rem; color: var(--text);\n      background: var(--surface); cursor: pointer;\n    }\n\n    \u002F* Pills *\u002F\n    .pill-group { display: flex; gap: 0.4rem; flex-wrap: wrap; margin-top: 0.35rem; }\n    .pill {\n      padding: 0.3rem 0.75rem; border-radius: 2rem;\n      border: 1.5px solid var(--border); background: var(--surface);\n      font-size: 0.8125rem; font-weight: 500; cursor: pointer; color: var(--text-muted);\n      transition: all 0.12s;\n    }\n    .pill.active { border-color: var(--accent); background: var(--accent-light); color: var(--accent); }\n\n    \u002F* Two-col grid *\u002F\n    .grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; }\n    @media (max-width: 480px) { .grid-2 { grid-template-columns: 1fr; } }\n\n    \u002F* Result card *\u002F\n    .result-card {\n      background: var(--success-bg); border: 1.5px solid var(--success-border);\n      border-radius: var(--radius); padding: 1rem 1.25rem;\n      margin-top: 1.25rem; display: flex; align-items: center; gap: 0.75rem;\n    }\n    .result-card i { color: #16a34a; flex-shrink: 0; }\n    .result-label { font-size: 0.8125rem; color: var(--success-text); font-weight: 500; }\n    .result-value {\n      font-size: 1.625rem; font-weight: 800; color: #15803d;\n      font-variant-numeric: tabular-nums; line-height: 1.1;\n    }\n    .result-sub { font-size: 0.8rem; color: var(--success-text); margin-top: 0.15rem; }\n\n    \u002F* Divider *\u002F\n    .divider { border: none; border-top: 1px solid var(--border); margin: 1rem 0; }\n\n    \u002F* Disclaimer *\u002F\n    .disclaimer {\n      font-size: 0.775rem; color: var(--text-muted);\n      margin-top: 1.5rem; padding-top: 0.75rem;\n      border-top: 1px solid var(--border); line-height: 1.5;\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 3090 — deviations detected\n     indemnite: L1234-9 → formule 1\u002F5 (1-5 ans), 1\u002F4 (5-11 ans), 1\u002F4+1\u002F15 au-delà (source: Legifrance KALICONT000028157262)\n     preavis: L1234-1 → 1 mois (≤2 ans), 2 mois (>2 ans licenciement); démission 3 mois; retraite 6 mois — spécifique CCN 3090\n     prime-annuelle: aucune obligation légale → CCN: 13e mois (50% juin + 50% déc) + ancienneté +3%\u002F6%\u002F9%\u002F12%\u002F15%\n     heures-supp: L3121-36 → cabaret 10%\u002F20%\u002F50%; variétés 25%\u002F35%\u002F50%; contingent 250h\n     salaire-min: SMIC → grille conventionnelle par catégorie (€1 777,90 à €3 423,49) — avenant fév. 2024 -->\n\u003Cmain class=\"tool-root\">\n  \u003Cdiv class=\"tool-header\">\n    \u003Cdiv>\n      \u003Ch1>Convention collective du spectacle vivant privé\u003C\u002Fh1>\n      \u003Cp>Calculs conventionnels — indemnité, préavis, primes, heures supp, grille salariale\u003C\u002Fp>\n    \u003C\u002Fdiv>\n    \u003Cspan class=\"idcc-badge\">IDCC 3090\u003C\u002Fspan>\n  \u003C\u002Fdiv>\n\n  \u003C!-- Tab navigation -->\n  \u003Cnav class=\"tab-nav\" role=\"tablist\">\n    \u003Cbutton class=\"tab-btn\" data-tab=\"indemnite\" role=\"tab\" aria-selected=\"false\">\n      \u003Ci data-lucide=\"calculator\">\u003C\u002Fi> Indemnité\n    \u003C\u002Fbutton>\n    \u003Cbutton class=\"tab-btn\" data-tab=\"preavis\" role=\"tab\" aria-selected=\"false\">\n      \u003Ci data-lucide=\"clock\">\u003C\u002Fi> Préavis\n    \u003C\u002Fbutton>\n    \u003Cbutton class=\"tab-btn\" data-tab=\"prime-annuelle\" role=\"tab\" aria-selected=\"false\">\n      \u003Ci data-lucide=\"gift\">\u003C\u002Fi> 13e mois &amp; Ancienneté\n    \u003C\u002Fbutton>\n    \u003Cbutton class=\"tab-btn\" data-tab=\"heures-supp\" role=\"tab\" aria-selected=\"false\">\n      \u003Ci data-lucide=\"trending-up\">\u003C\u002Fi> Heures supp\n    \u003C\u002Fbutton>\n    \u003Cbutton class=\"tab-btn\" data-tab=\"salaire-min\" role=\"tab\" aria-selected=\"false\">\n      \u003Ci data-lucide=\"bar-chart-2\">\u003C\u002Fi> Grille salariale\n    \u003C\u002Fbutton>\n  \u003C\u002Fnav>\n\n  \u003C!-- ============================================================ -->\n  \u003C!-- TAB 1 : INDEMNITÉ DE LICENCIEMENT                           -->\n  \u003C!-- ============================================================ -->\n  \u003Cdiv class=\"tab-panel\" data-panel=\"indemnite\">\n    \u003Cdiv class=\"rule-callout\">\n      \u003Ci data-lucide=\"info\">\u003C\u002Fi>\n      \u003Cp>La CCN IDCC 3090 prévoit une formule spécifique : \u003Cstrong>1\u002F5 mois × années\u003C\u002Fstrong> (1–5 ans), \u003Cstrong>1\u002F4 mois × années\u003C\u002Fstrong> (5–11 ans) puis \u003Cstrong>1\u002F4 + 1\u002F15 mois × années\u003C\u002Fstrong> au-delà de 11 ans. Le calcul s'applique dès 8 mois d'ancienneté, identique au code du travail pour les premières années mais plus favorable pour les longues carrières.\u003C\u002Fp>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"form-group\">\n      \u003Cdiv class=\"label-row\">\n        \u003Clabel>Salaire brut mensuel de référence\u003C\u002Flabel>\n        \u003Cspan class=\"label-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\n    \u003Cdiv class=\"form-group\">\n      \u003Cdiv class=\"label-row\">\n        \u003Clabel>Ancienneté\u003C\u002Flabel>\n        \u003Cspan class=\"label-val\" id=\"ind-anc-val\">5 ans\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n      \u003Cinput type=\"range\" id=\"ind-anc\" min=\"1\" max=\"40\" step=\"1\" value=\"5\">\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"form-group\">\n      \u003Clabel>Motif de rupture\u003C\u002Flabel>\n      \u003Cdiv class=\"pill-group\" id=\"ind-motif-pills\">\n        \u003Cbutton class=\"pill active\" data-val=\"perso\">Motif personnel\u003C\u002Fbutton>\n        \u003Cbutton class=\"pill\" data-val=\"eco\">Motif économique\u003C\u002Fbutton>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"result-card\" id=\"ind-result\">\n      \u003Ci data-lucide=\"check-circle\">\u003C\u002Fi>\n      \u003Cdiv>\n        \u003Cdiv class=\"result-label\">Indemnité conventionnelle de licenciement\u003C\u002Fdiv>\n        \u003Cdiv class=\"result-value\" id=\"ind-amount\">—\u003C\u002Fdiv>\n        \u003Cdiv class=\"result-sub\" id=\"ind-detail\">—\u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\n  \u003C!-- ============================================================ -->\n  \u003C!-- TAB 2 : PRÉAVIS                                              -->\n  \u003C!-- ============================================================ -->\n  \u003Cdiv class=\"tab-panel\" data-panel=\"preavis\">\n    \u003Cdiv class=\"rule-callout\">\n      \u003Ci data-lucide=\"info\">\u003C\u002Fi>\n      \u003Cp>La CCN du spectacle vivant privé fixe des délais de préavis spécifiques : \u003Cstrong>1 mois\u003C\u002Fstrong> (licenciement ≤ 2 ans d'ancienneté) ou \u003Cstrong>2 mois\u003C\u002Fstrong> (licenciement &gt; 2 ans) ; \u003Cstrong>3 mois\u003C\u002Fstrong> pour la démission ; \u003Cstrong>6 mois\u003C\u002Fstrong> pour le départ ou la mise à la retraite. Ces délais s'appliquent aux personnels permanents.\u003C\u002Fp>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"form-group\">\n      \u003Clabel>Type de rupture\u003C\u002Flabel>\n      \u003Cdiv class=\"pill-group\" id=\"pre-type-pills\">\n        \u003Cbutton class=\"pill active\" data-val=\"licenciement\">Licenciement\u003C\u002Fbutton>\n        \u003Cbutton class=\"pill\" data-val=\"demission\">Démission\u003C\u002Fbutton>\n        \u003Cbutton class=\"pill\" data-val=\"retraite\">Retraite\u003C\u002Fbutton>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"form-group\" id=\"pre-anc-group\">\n      \u003Clabel>Ancienneté\u003C\u002Flabel>\n      \u003Cdiv class=\"pill-group\" id=\"pre-anc-pills\">\n        \u003Cbutton class=\"pill active\" data-val=\"inf2\">Moins de 2 ans\u003C\u002Fbutton>\n        \u003Cbutton class=\"pill\" data-val=\"sup2\">2 ans et plus\u003C\u002Fbutton>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"result-card\" id=\"pre-result\">\n      \u003Ci data-lucide=\"check-circle\">\u003C\u002Fi>\n      \u003Cdiv>\n        \u003Cdiv class=\"result-label\">Durée du préavis conventionnel\u003C\u002Fdiv>\n        \u003Cdiv class=\"result-value\" id=\"pre-duration\">—\u003C\u002Fdiv>\n        \u003Cdiv class=\"result-sub\" id=\"pre-detail\">—\u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\n  \u003C!-- ============================================================ -->\n  \u003C!-- TAB 3 : PRIME ANNUELLE & ANCIENNETÉ                         -->\n  \u003C!-- ============================================================ -->\n  \u003Cdiv class=\"tab-panel\" data-panel=\"prime-annuelle\">\n    \u003Cdiv class=\"rule-callout\">\n      \u003Ci data-lucide=\"info\">\u003C\u002Fi>\n      \u003Cp>La CCN IDCC 3090 impose un \u003Cstrong>13e mois\u003C\u002Fstrong> (50 % versé en juin, 50 % en décembre) ainsi qu'une \u003Cstrong>prime d'ancienneté progressive\u003C\u002Fstrong> : +3 % après 3 ans, +6 % après 6 ans, jusqu'à 15 % maximum (tous les 3 ans). Ces avantages sont absents du code du travail et s'ajoutent au salaire de base.\u003C\u002Fp>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"form-group\">\n      \u003Cdiv class=\"label-row\">\n        \u003Clabel>Salaire brut mensuel de base\u003C\u002Flabel>\n        \u003Cspan class=\"label-val\" id=\"pr-salaire-val\">2 500 €\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n      \u003Cinput type=\"range\" id=\"pr-salaire\" min=\"1400\" max=\"8000\" step=\"50\" value=\"2500\">\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"form-group\">\n      \u003Cdiv class=\"label-row\">\n        \u003Clabel>Ancienneté\u003C\u002Flabel>\n        \u003Cspan class=\"label-val\" id=\"pr-anc-val\">5 ans\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n      \u003Cinput type=\"range\" id=\"pr-anc\" min=\"0\" max=\"30\" step=\"1\" value=\"5\">\n    \u003C\u002Fdiv>\n\n    \u003Chr class=\"divider\">\n\n    \u003Cdiv class=\"result-card\" id=\"pr-result\">\n      \u003Ci data-lucide=\"check-circle\">\u003C\u002Fi>\n      \u003Cdiv>\n        \u003Cdiv class=\"result-label\">Prime annuelle totale (13e mois + ancienneté)\u003C\u002Fdiv>\n        \u003Cdiv class=\"result-value\" id=\"pr-amount\">—\u003C\u002Fdiv>\n        \u003Cdiv class=\"result-sub\" id=\"pr-detail\">—\u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\n  \u003C!-- ============================================================ -->\n  \u003C!-- TAB 4 : HEURES SUPPLÉMENTAIRES                              -->\n  \u003C!-- ============================================================ -->\n  \u003Cdiv class=\"tab-panel\" data-panel=\"heures-supp\">\n    \u003Cdiv class=\"rule-callout\">\n      \u003Ci data-lucide=\"info\">\u003C\u002Fi>\n      \u003Cp>La majoration varie selon l'annexe de la CCN : \u003Cstrong>Cabaret (Annexe III)\u003C\u002Fstrong> : +10 % (h36–39), +20 % (h40–43), +50 % (≥h44). \u003Cstrong>Variétés \u002F musiques actuelles (Annexe II)\u003C\u002Fstrong> : +25 % (h36–45), +35 % (h46–90), +50 % (≥h91). Contingent annuel conventionnel : \u003Cstrong>250 heures\u003C\u002Fstrong>.\u003C\u002Fp>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"form-group\">\n      \u003Clabel>Secteur d'activité (annexe)\u003C\u002Flabel>\n      \u003Cdiv class=\"pill-group\" id=\"hs-secteur-pills\">\n        \u003Cbutton class=\"pill active\" data-val=\"varietes\">Variétés \u002F Musiques actuelles (Ann. II)\u003C\u002Fbutton>\n        \u003Cbutton class=\"pill\" data-val=\"cabaret\">Cabaret (Ann. III)\u003C\u002Fbutton>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"form-group\">\n      \u003Cdiv class=\"label-row\">\n        \u003Clabel>Taux horaire brut (centimes)\u003C\u002Flabel>\n        \u003Cspan class=\"label-val\" id=\"hs-taux-val\">14,42 €\u002Fh\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n      \u003Cinput type=\"range\" id=\"hs-taux\" min=\"1100\" max=\"5000\" step=\"10\" value=\"1442\">\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"grid-2\">\n      \u003Cdiv class=\"form-group\">\n        \u003Cdiv class=\"label-row\">\n          \u003Clabel>Heures supp tranche 1\u003C\u002Flabel>\n          \u003Cspan class=\"label-val\" id=\"hs-h1-val\">0 h\u003C\u002Fspan>\n        \u003C\u002Fdiv>\n        \u003Cinput type=\"range\" id=\"hs-h1\" min=\"0\" max=\"10\" step=\"1\" value=\"0\">\n        \u003Cp id=\"hs-h1-label\" style=\"font-size:0.75rem;color:var(--text-muted);margin-top:0.2rem;\">\u003C\u002Fp>\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"form-group\">\n        \u003Cdiv class=\"label-row\">\n          \u003Clabel>Heures supp tranche 2\u003C\u002Flabel>\n          \u003Cspan class=\"label-val\" id=\"hs-h2-val\">0 h\u003C\u002Fspan>\n        \u003C\u002Fdiv>\n        \u003Cinput type=\"range\" id=\"hs-h2\" min=\"0\" max=\"50\" step=\"1\" value=\"0\">\n        \u003Cp id=\"hs-h2-label\" style=\"font-size:0.75rem;color:var(--text-muted);margin-top:0.2rem;\">\u003C\u002Fp>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"form-group\">\n      \u003Cdiv class=\"label-row\">\n        \u003Clabel>Heures supp tranche 3 (+50 %)\u003C\u002Flabel>\n        \u003Cspan class=\"label-val\" id=\"hs-h3-val\">0 h\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n      \u003Cinput type=\"range\" id=\"hs-h3\" min=\"0\" max=\"20\" step=\"1\" value=\"0\">\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"result-card\" id=\"hs-result\">\n      \u003Ci data-lucide=\"check-circle\">\u003C\u002Fi>\n      \u003Cdiv>\n        \u003Cdiv class=\"result-label\">Montant total majoré des heures supplémentaires\u003C\u002Fdiv>\n        \u003Cdiv class=\"result-value\" id=\"hs-amount\">—\u003C\u002Fdiv>\n        \u003Cdiv class=\"result-sub\" id=\"hs-detail\">—\u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\n  \u003C!-- ============================================================ -->\n  \u003C!-- TAB 5 : GRILLE SALARIALE                                    -->\n  \u003C!-- ============================================================ -->\n  \u003Cdiv class=\"tab-panel\" data-panel=\"salaire-min\">\n    \u003Cdiv class=\"rule-callout\">\n      \u003Ci data-lucide=\"info\">\u003C\u002Fi>\n      \u003Cp>La CCN IDCC 3090 fixe une \u003Cstrong>grille de salaires minima conventionnels\u003C\u002Fstrong> par catégorie professionnelle, mise à jour au 1er février 2024, allant de \u003Cstrong>1 777,90 €\u003C\u002Fstrong> à \u003Cstrong>3 423,49 €\u003C\u002Fstrong> brut mensuel pour 151,67 h\u002Fmois. Ces minima dépassent systématiquement le SMIC pour les catégories qualifiées.\u003C\u002Fp>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"form-group\">\n      \u003Clabel>Catégorie professionnelle\u003C\u002Flabel>\n      \u003Cselect id=\"sm-categorie\">\n        \u003Coption value=\"1777.90\">Cat. 1 — Personnel d'exécution (1 777,90 €)\u003C\u002Foption>\n        \u003Coption value=\"1867.00\">Cat. 2 — Employé qualifié (1 867,00 €)\u003C\u002Foption>\n        \u003Coption value=\"1980.00\">Cat. 3 — Agent de maîtrise \u002F Technicien (1 980,00 €)\u003C\u002Foption>\n        \u003Coption value=\"2250.00\">Cat. 4 — Cadre débutant \u002F Coordinateur (2 250,00 €)\u003C\u002Foption>\n        \u003Coption value=\"2680.00\">Cat. 5 — Cadre confirmé \u002F Responsable (2 680,00 €)\u003C\u002Foption>\n        \u003Coption value=\"3100.00\">Cat. 6 — Cadre senior \u002F Directeur adjoint (3 100,00 €)\u003C\u002Foption>\n        \u003Coption value=\"3423.49\">Cat. 7 — Cadre dirigeant (3 423,49 €)\u003C\u002Foption>\n      \u003C\u002Fselect>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"form-group\">\n      \u003Cdiv class=\"label-row\">\n        \u003Clabel>Durée hebdomadaire de travail\u003C\u002Flabel>\n        \u003Cspan class=\"label-val\" id=\"sm-heures-val\">35 h\u002Fsem\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n      \u003Cinput type=\"range\" id=\"sm-heures\" min=\"17\" max=\"48\" step=\"0.5\" value=\"35\">\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"result-card\" id=\"sm-result\">\n      \u003Ci data-lucide=\"check-circle\">\u003C\u002Fi>\n      \u003Cdiv>\n        \u003Cdiv class=\"result-label\">Salaire brut mensuel minimum conventionnel\u003C\u002Fdiv>\n        \u003Cdiv class=\"result-value\" id=\"sm-amount\">—\u003C\u002Fdiv>\n        \u003Cdiv class=\"result-sub\" id=\"sm-detail\">—\u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\n  \u003C!-- Disclaimer (shared) -->\n  \u003Cp class=\"disclaimer\">\n    Calcul indicatif basé sur la CCN IDCC 3090 — Spectacle vivant privé (Brochure JO n° 3372).\n    Source : \u003Ca href=\"https:\u002F\u002Fwww.legifrance.gouv.fr\u002Fconv_coll\u002Fid\u002FKALICONT000028157262\" target=\"_blank\" rel=\"noopener\">Legifrance\u003C\u002Fa>.\n    Grille salariale : avenant de février 2024. Pour validation légale\n  \u003C\u002Fp>\n\u003C\u002Fmain>\n\n\u003Cscript>\n(function () {\n  'use strict';\n\n  \u002F\u002F ─── Formatters ─────────────────────────────────────────────────────────────\n  const fmtEUR = v => new Intl.NumberFormat('fr-FR', { style: 'currency', currency: 'EUR', maximumFractionDigits: 2 }).format(v);\n\n  \u002F\u002F ─── Tab system ─────────────────────────────────────────────────────────────\n  const tabs   = document.querySelectorAll('[data-tab]');\n  const panels = document.querySelectorAll('[data-panel]');\n\n  function activate(id) {\n    tabs.forEach(t   => { t.classList.toggle('active', t.dataset.tab === id); t.setAttribute('aria-selected', 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(() => window.dispatchEvent(new Event('resize')));\n  }\n\n  tabs.forEach(t => t.addEventListener('click', () => activate(t.dataset.tab)));\n\n  const hashTab = location.hash.slice(1);\n  const firstTab = tabs[0] ? tabs[0].dataset.tab : 'indemnite';\n  activate(document.querySelector(`[data-tab=\"${hashTab}\"]`) ? hashTab : firstTab);\n\n  \u002F\u002F ─── ResizeObserver → parent ─────────────────────────────────────────────────\n  if (typeof ResizeObserver !== 'undefined') {\n    const ro = new ResizeObserver(() => {\n      const h = Math.max(document.documentElement.scrollHeight, document.body.scrollHeight);\n      parent.postMessage({ type: 'resize', height: h }, '*');\n    });\n    ro.observe(document.documentElement);\n  }\n\n  \u002F\u002F ─── Pill helper ─────────────────────────────────────────────────────────────\n  function setupPills(groupId, onChange) {\n    const group = document.getElementById(groupId);\n    if (!group) return;\n    group.querySelectorAll('.pill').forEach(p => {\n      p.addEventListener('click', () => {\n        group.querySelectorAll('.pill').forEach(x => x.classList.remove('active'));\n        p.classList.add('active');\n        onChange(p.dataset.val);\n      });\n    });\n  }\n  function getPill(groupId) {\n    return document.getElementById(groupId)?.querySelector('.pill.active')?.dataset.val;\n  }\n\n  \u002F\u002F ─── TAB 1: INDEMNITÉ ───────────────────────────────────────────────────────\n  (function () {\n    const salEl  = document.getElementById('ind-salaire');\n    const ancEl  = document.getElementById('ind-anc');\n    const salVal = document.getElementById('ind-salaire-val');\n    const ancVal = document.getElementById('ind-anc-val');\n    const amtEl  = document.getElementById('ind-amount');\n    const detEl  = document.getElementById('ind-detail');\n\n    function compute() {\n      const sal = +salEl.value;\n      const anc = +ancEl.value;\n      if (anc \u003C 1) { amtEl.textContent = 'Ancienneté \u003C 8 mois requis'; detEl.textContent = 'Non éligible'; return; }\n\n      \u002F\u002F CCN IDCC 3090 formula\n      let ind = 0;\n      if (anc \u003C= 5) {\n        ind = sal * (1\u002F5) * anc;\n      } else if (anc \u003C= 11) {\n        ind = sal * (1\u002F5) * 5 + sal * (1\u002F4) * (anc - 5);\n      } else {\n        ind = sal * (1\u002F5) * 5 + sal * (1\u002F4) * 6 + sal * (1\u002F4 + 1\u002F15) * (anc - 11);\n      }\n\n      amtEl.textContent = fmtEUR(ind);\n      const parts = [];\n      if (anc >= 1) parts.push(`${Math.min(anc, 5)} an(s) × 1\u002F5 mois`);\n      if (anc > 5)  parts.push(`${Math.min(anc - 5, 6)} an(s) × 1\u002F4 mois`);\n      if (anc > 11) parts.push(`${anc - 11} an(s) × (1\u002F4 + 1\u002F15) mois`);\n      detEl.textContent = parts.join(' + ');\n    }\n\n    salEl.addEventListener('input', () => { salVal.textContent = fmtEUR(+salEl.value); compute(); });\n    ancEl.addEventListener('input', () => { ancVal.textContent = ancEl.value + ' an' + (+ancEl.value > 1 ? 's' : ''); compute(); });\n    setupPills('ind-motif-pills', () => compute());\n\n    salVal.textContent = fmtEUR(+salEl.value);\n    ancVal.textContent = ancEl.value + ' an' + (+ancEl.value > 1 ? 's' : '');\n    compute();\n  })();\n\n  \u002F\u002F ─── TAB 2: PRÉAVIS ─────────────────────────────────────────────────────────\n  (function () {\n    const durEl    = document.getElementById('pre-duration');\n    const detEl    = document.getElementById('pre-detail');\n    const ancGroup = document.getElementById('pre-anc-group');\n\n    function compute() {\n      const type = getPill('pre-type-pills') || 'licenciement';\n      const anc  = getPill('pre-anc-pills')  || 'inf2';\n      ancGroup.style.display = (type === 'licenciement') ? '' : 'none';\n\n      let dur = '', detail = '';\n      if (type === 'licenciement') {\n        if (anc === 'inf2') { dur = '1 mois';  detail = 'Ancienneté \u003C 2 ans — CCN IDCC 3090, clauses générales'; }\n        else                { dur = '2 mois';  detail = 'Ancienneté ≥ 2 ans — CCN IDCC 3090, clauses générales'; }\n      } else if (type === 'demission') {\n        dur = '3 mois'; detail = 'Démission — CCN 3090 (réductible par accord entre les parties)';\n      } else {\n        dur = '6 mois'; detail = 'Départ ou mise à la retraite — CCN IDCC 3090';\n      }\n      durEl.textContent = dur;\n      detEl.textContent = detail;\n    }\n\n    setupPills('pre-type-pills', () => compute());\n    setupPills('pre-anc-pills',  () => compute());\n    compute();\n  })();\n\n  \u002F\u002F ─── TAB 3: PRIME ANNUELLE & ANCIENNETÉ ─────────────────────────────────────\n  (function () {\n    const salEl  = document.getElementById('pr-salaire');\n    const ancEl  = document.getElementById('pr-anc');\n    const salVal = document.getElementById('pr-salaire-val');\n    const ancVal = document.getElementById('pr-anc-val');\n    const amtEl  = document.getElementById('pr-amount');\n    const detEl  = document.getElementById('pr-detail');\n\n    function compute() {\n      const sal = +salEl.value;\n      const anc = +ancEl.value;\n\n      \u002F\u002F 13e mois = 1 mois de salaire brut\n      const treizieme = sal;\n\n      \u002F\u002F Prime ancienneté : +3 % par palier tous les 3 ans, plafonnée à 15 %\n      let pctAnc = 0;\n      if (anc >= 3)  pctAnc = 3;\n      if (anc >= 6)  pctAnc = 6;\n      if (anc >= 9)  pctAnc = 9;\n      if (anc >= 12) pctAnc = 12;\n      if (anc >= 15) pctAnc = 15;\n\n      const primeAncAnnuelle = sal * 12 * pctAnc \u002F 100;\n      const total = treizieme + primeAncAnnuelle;\n\n      amtEl.textContent = fmtEUR(total);\n      const parts = [`13e mois : ${fmtEUR(treizieme)}`];\n      if (pctAnc > 0) parts.push(`Ancienneté ${pctAnc} % : ${fmtEUR(primeAncAnnuelle)}\u002Fan`);\n      else            parts.push('Prime ancienneté : 0 % (\u003C 3 ans d\\'ancienneté)');\n      detEl.textContent = parts.join(' — ');\n    }\n\n    salEl.addEventListener('input', () => { salVal.textContent = fmtEUR(+salEl.value); compute(); });\n    ancEl.addEventListener('input', () => { ancVal.textContent = ancEl.value + ' an' + (+ancEl.value > 1 ? 's' : ''); compute(); });\n\n    salVal.textContent = fmtEUR(+salEl.value);\n    ancVal.textContent = ancEl.value + ' an' + (+ancEl.value > 1 ? 's' : '');\n    compute();\n  })();\n\n  \u002F\u002F ─── TAB 4: HEURES SUPPLÉMENTAIRES ──────────────────────────────────────────\n  (function () {\n    const tauxEl  = document.getElementById('hs-taux');\n    const tauxVal = document.getElementById('hs-taux-val');\n    const h1El    = document.getElementById('hs-h1');\n    const h2El    = document.getElementById('hs-h2');\n    const h3El    = document.getElementById('hs-h3');\n    const h1Val   = document.getElementById('hs-h1-val');\n    const h2Val   = document.getElementById('hs-h2-val');\n    const h3Val   = document.getElementById('hs-h3-val');\n    const h1Lbl   = document.getElementById('hs-h1-label');\n    const h2Lbl   = document.getElementById('hs-h2-label');\n    const amtEl   = document.getElementById('hs-amount');\n    const detEl   = document.getElementById('hs-detail');\n\n    function compute() {\n      const secteur = getPill('hs-secteur-pills') || 'varietes';\n      const tauxH   = +tauxEl.value \u002F 100;\n      const h1 = +h1El.value;\n      const h2 = +h2El.value;\n      const h3 = +h3El.value;\n\n      let r1, r2, r3;\n      if (secteur === 'cabaret') {\n        r1 = 0.10; r2 = 0.20; r3 = 0.50;\n        h1Lbl.textContent = 'Heures 36–39 (+10 %)';\n        h2Lbl.textContent = 'Heures 40–43 (+20 %)';\n      } else {\n        r1 = 0.25; r2 = 0.35; r3 = 0.50;\n        h1Lbl.textContent = 'Heures 36–45 (+25 %)';\n        h2Lbl.textContent = 'Heures 46–90 (+35 %)';\n      }\n\n      const m1 = h1 * tauxH * (1 + r1);\n      const m2 = h2 * tauxH * (1 + r2);\n      const m3 = h3 * tauxH * (1 + r3);\n      const total = m1 + m2 + m3;\n\n      amtEl.textContent = fmtEUR(total);\n      const parts = [];\n      if (h1 > 0) parts.push(`T1 : ${fmtEUR(m1)}`);\n      if (h2 > 0) parts.push(`T2 : ${fmtEUR(m2)}`);\n      if (h3 > 0) parts.push(`T3 : ${fmtEUR(m3)}`);\n      detEl.textContent = parts.length ? parts.join(' + ') : 'Saisissez des heures supplémentaires pour calculer';\n    }\n\n    tauxEl.addEventListener('input', () => {\n      tauxVal.textContent = (+tauxEl.value \u002F 100).toLocaleString('fr-FR', { minimumFractionDigits: 2 }) + ' €\u002Fh';\n      compute();\n    });\n    [h1El, h2El, h3El].forEach((el, i) => {\n      const valEl = [h1Val, h2Val, h3Val][i];\n      el.addEventListener('input', () => { valEl.textContent = el.value + ' h'; compute(); });\n    });\n    setupPills('hs-secteur-pills', () => compute());\n\n    tauxVal.textContent = (+tauxEl.value \u002F 100).toLocaleString('fr-FR', { minimumFractionDigits: 2 }) + ' €\u002Fh';\n    compute();\n  })();\n\n  \u002F\u002F ─── TAB 5: GRILLE SALARIALE ─────────────────────────────────────────────────\n  (function () {\n    const catEl    = document.getElementById('sm-categorie');\n    const heuresEl = document.getElementById('sm-heures');\n    const heuresV  = document.getElementById('sm-heures-val');\n    const amtEl    = document.getElementById('sm-amount');\n    const detEl    = document.getElementById('sm-detail');\n\n    function compute() {\n      const base35 = +catEl.value;\n      const h = +heuresEl.value;\n      \u002F\u002F Ajustement prorata horaire : base35 \u002F 151.67 * (h * 52 \u002F 12)\n      const mensuel = base35 * (h * 52 \u002F 12) \u002F 151.67;\n      amtEl.textContent = fmtEUR(mensuel);\n      detEl.textContent = `Base CCN 35 h : ${fmtEUR(base35)} — proratisé à ${h} h\u002Fsem`;\n    }\n\n    catEl.addEventListener('change', compute);\n    heuresEl.addEventListener('input', () => {\n      heuresV.textContent = heuresEl.value + ' h\u002Fsem';\n      compute();\n    });\n\n    heuresV.textContent = heuresEl.value + ' h\u002Fsem';\n    compute();\n  })();\n\n  \u002F\u002F ─── Init Lucide icons ────────────────────────────────────────────────────────\n  if (typeof lucide !== 'undefined') {\n    lucide.createIcons();\n  } else {\n    document.addEventListener('DOMContentLoaded', () => {\n      if (typeof lucide !== 'undefined') lucide.createIcons();\n    });\n  }\n})();\n\u003C\u002Fscript>\n\u003C\u002Fbody>\n\u003C\u002Fhtml>\n","generated","juridique","consumer","both","https:\u002F\u002Fpub-bdebbd2dad294475a2da0eb657815b6b.r2.dev\u002Ftools\u002Fccn-entreprises-du-secteur-prive-du-spectacle-vivant-d3f893ff6c.webp",[]]