{"id":65765,"date":"2026-07-20T10:32:25","date_gmt":"2026-07-20T08:32:25","guid":{"rendered":"https:\/\/muaytax.com\/?page_id=65765"},"modified":"2026-08-20T10:35:12","modified_gmt":"2026-08-20T08:35:12","slug":"calculadora-de-nominas-y-costes-laborales","status":"publish","type":"page","link":"https:\/\/muaytax.com\/es\/calculadora-de-nominas-y-costes-laborales\/","title":{"rendered":"Calculadora de n\u00f3minas y costes laborales"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"65765\" class=\"elementor elementor-65765\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-62ddc9b e-flex e-con-boxed e-con e-parent\" data-id=\"62ddc9b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a01abf8 elementor-widget elementor-widget-html\" data-id=\"a01abf8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<meta charset=\"UTF-8\">\n<section class=\"mtx-calculator\" data-calculator-id=\"calculadora-nominas-costes-laborales\" data-version=\"v26.9\" data-calculator-version=\"v26.9\" data-ui-version=\"3.8\" data-hubspot-portal-id=\"20760506\" data-hubspot-form-id=\"dd2add7e-15d7-4c49-a950-1c464b1fbc84\" data-hubspot-region=\"na1\" data-muay-v2=\"\" data-muay-v3=\"\" data-scale-version=\"compact-v26.1\">\n  <style data-mt-ui=\"v3.8\">\/* Correccion 2026-08-10: contraste WCAG 2.1 AA de colores primarios y stepper. *\/\n    \/* Correcci\u00f3n 2026-08-10: stepper m\u00f3vil con objetivo t\u00e1ctil m\u00ednimo de 44 px. *\/\n    .mtx-calculator{--mtx-navy:#031549;--mtx-green:#008a51;--mtx-green-dark:#008a51;--mtx-green-soft:#d9ffee;--mtx-border:#e5ecf7;--mtx-muted:#5b6380;--mtx-bg:#f5f8fc;--mtx-danger:#b42318;--mtx-warning:#8a5a00;box-sizing:border-box;width:100%;font-family:Poppins,Tahoma,Geneva,Verdana,sans-serif;color:var(--mtx-navy);max-width:1100px;margin:0 auto;padding:18px 12px;overflow-x:hidden;font-size:16px}\n    .mtx-calculator,.mtx-calculator *{font-family:Poppins,Tahoma,Geneva,Verdana,sans-serif!important}\n    .mtx-calculator *{box-sizing:border-box}\n    .mt-tool-hero{text-align:center;margin:0 auto 22px;max-width:900px;padding:18px 0 20px}\n    .mt-tool-hero h1{font-size:clamp(1.8rem,3.4vw,2.6rem);line-height:1.16;margin:0 0 14px;font-weight:800;letter-spacing:0;color:var(--mtx-navy)}\n    .mt-tool-hero h1 span{color: var(--mtx-green)}\n    .mt-tool-hero p{font-size:1.05rem;line-height:1.65;margin:0;color:var(--mtx-navy)}\n    .mtx-stepper{display:grid;grid-template-columns:repeat(var(--steps),1fr);gap:6px;border:1px solid var(--mtx-border);border-radius:14px;padding:6px;margin:0 0 18px;background:#fff;scroll-margin-top:72px}\n    .mtx-step-dot{appearance:none;width:100%;min-width:0;min-height:46px;border:0;border-radius:10px;padding:0;background:#fff;display:grid;place-items:center;cursor:pointer}\n    .mtx-step-dot span{width:30px;height:30px;border-radius:999px;border:2px solid #e0e9f6;background:#fff;color:#031549;display:grid;place-items:center;font-size:.95rem;font-weight:800;line-height:1}\n    .mtx-step-dot.is-active,.mtx-step-dot.is-complete{background:var(--mtx-green-soft)}\n    .mtx-step-dot.is-active span,.mtx-step-dot.is-complete span{border-color:var(--mtx-green);background:#fff;color:var(--mtx-navy)}\n    .mtx-step-dot.is-locked{opacity:.48;cursor:not-allowed}\n    .mtx-step-dot:focus-visible{outline:2px solid var(--mtx-green);outline-offset:2px}\n    .mtx-panel{border:1px solid var(--mtx-border);border-radius:14px;background:#fff;padding:clamp(18px,3vw,28px);box-shadow:0 12px 32px rgba(0,27,91,.05)}\n    .mtx-step{display:none}\n    .mtx-step.is-active{display:block}\n    .mtx-step h2{font-size:clamp(1.3rem,2.3vw,1.65rem);line-height:1.25;margin:0 0 10px;font-weight:800;letter-spacing:0;color:var(--mtx-navy)}\n    .mtx-step-intro{font-size:.95rem;line-height:1.6;color:var(--mtx-muted);margin:0 0 22px}.mtx-stepper .mtx-step-dot:not(.is-active):not(.is-complete){\n    background:#fff !important;\n}\n    .mtx-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}\n    .mtx-grid-three{grid-template-columns:repeat(3,minmax(0,1fr))}\n    .mtx-field{display:grid;gap:8px;min-width:0}\n    .mtx-fieldset{min-width:0;border:0;margin:0 0 20px;padding:0}\n    .mtx-label,.mtx-legend{font-size:.98rem;font-weight:800;color:var(--mtx-navy)}\n    .mtx-legend{display:block;margin:0 0 8px}\n    .mtx-help{font-size:.84rem;color:var(--mtx-muted);line-height:1.5}\n    .mtx-input,.mtx-select{width:100%;min-height:52px;border:1px solid #cfd9e8;border-radius:12px;padding:0 14px;font:600 1rem\/1 Poppins,Tahoma,Geneva,Verdana,sans-serif;color:var(--mtx-navy);background:#fff}\n    .mtx-input:focus,.mtx-select:focus{outline:2px solid var(--mtx-green);outline-offset:2px;border-color:var(--mtx-green)}\n    .mtx-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}\n    .mtx-options-three{grid-template-columns:repeat(3,minmax(0,1fr))}\n    .mtx-card{position:relative;display:block;border:2px solid var(--mtx-border);border-radius:12px;background:#fff;padding:14px 16px;min-height:82px;cursor:pointer;transition:border-color .18s ease,background-color .18s ease,transform .18s ease}\n    .mtx-card:hover{transform:translateY(-1px);border-color:var(--mtx-green)}\n    .mtx-card:focus-within{outline:2px solid var(--mtx-green);outline-offset:2px}\n    .mtx-card input{position:absolute;inline-size:1px;block-size:1px;opacity:0;pointer-events:none}\n    .mtx-card:has(input:checked){border-color:var(--mtx-green)!important;background:var(--mtx-green-soft)!important}\n    .mtx-card-title{display:block;font-size:.94rem;line-height:1.35;font-weight:800;margin-bottom:5px;color:var(--mtx-navy)}\n    .mtx-card-text{display:block;font-size:.8rem;line-height:1.5;color:var(--mtx-muted);font-weight:500}\n    :where(.mtx-calculator) :is(.mtx-card,.calc-country-card,.calc-toggle-row,.calc-radio-pill label){border-radius:12px}\n    .mtx-fixed-cost{display:grid;gap:5px;margin:4px 0 18px;padding:14px 16px;border:1px solid var(--mtx-border);border-radius:12px;background:var(--mtx-bg);color:var(--mtx-navy)}\n    .mtx-fixed-cost strong{font-size:.98rem;line-height:1.35}\n    .mtx-fixed-cost span{font-size:.84rem;line-height:1.5;color:var(--mtx-muted)}\n    .mtx-lead-box{display:grid;gap:16px;border:1px solid var(--mtx-border);border-radius:14px;background:var(--mtx-bg);padding:clamp(16px,3vw,24px)}\n    .mtx-lead-note{margin:0;color:var(--mtx-navy);font-size:.94rem;line-height:1.55;font-weight:700}\n    .mtx-hubspot-form{width:100%;min-height:260px;overflow:hidden}\n    .mtx-hubspot-form iframe{width:100%!important;max-width:100%!important;border:0}\n    .mtx-hubspot-status{display:none;margin:0;padding:11px 13px;border:1px solid var(--mtx-border);border-radius:10px;background:#fff;color:var(--mtx-muted);font-size:.88rem;line-height:1.45}\n    .mtx-hubspot-status.is-visible{display:block}\n    .mtx-manual-rate{display:none;margin-top:14px}\n    .mtx-manual-rate.is-visible{display:grid}\n    .mtx-result{display:none;margin-top:20px;border-radius:14px;background:var(--mtx-bg);padding:18px;color:var(--mtx-navy)}\n    .mtx-result.is-visible{display:block}\n    .mtx-result-main{display:grid;gap:7px;margin-bottom:16px;padding:16px;border-radius:12px;background:#fff;border:1px solid var(--mtx-border)}\n    .mtx-result-main.is-good{border-color:var(--mtx-green);background:var(--mtx-green-soft)}\n    .mtx-result-main.is-warning{border-color:#f8dfaa;background:#fff8ea}\n    .mtx-result-main.is-danger{border-color:#ffd3d9;background:#fff6f7}\n    .mtx-result-kicker{font-size:13px;font-weight:800;text-transform:uppercase;color:var(--mtx-muted);letter-spacing:0}\n    .mtx-result-title{font-size:clamp(1.25rem,2.4vw,1.6rem);font-weight:800;line-height:1.18;color:var(--mtx-navy)}\n    .mtx-result-copy{font-size:.92rem;line-height:1.55;color:var(--mtx-muted);margin:0}\n    .mtx-kpi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px}\n    .mtx-kpi{display:grid;gap:6px;min-width:0;padding:14px;border:1px solid var(--mtx-border);border-radius:12px;background:#fff}\n    .mtx-kpi span{font-size:.76rem;text-transform:uppercase;font-weight:800;color:var(--mtx-muted);line-height:1.25}\n    .mtx-kpi strong{font-size:clamp(1.2rem,2.4vw,1.55rem);line-height:1.15;color:var(--mtx-navy);overflow-wrap:anywhere}\n    .mtx-kpi strong.is-green{color:var(--mtx-green)}\n    .mtx-kpi strong.is-red{color:var(--mtx-danger)}\n    .mtx-breakdown{overflow:hidden;border:1px solid var(--mtx-border);border-radius:14px;background:#fff}\n    .mtx-breakdown-row{display:flex;justify-content:space-between;gap:16px;padding:11px 14px;border-bottom:1px solid var(--mtx-border);font-size:.92rem;line-height:1.4;color:var(--mtx-navy)}\n    .mtx-breakdown-row:last-child{border-bottom:0}\n    .mtx-breakdown-row strong{text-align:right;font-weight:800;color:var(--mtx-navy);overflow-wrap:anywhere}\n    .mtx-alerts{display:grid;gap:10px;margin-top:18px}\n    .mtx-alert{padding:11px 13px;border-radius:10px;border:1px solid var(--mtx-border);background:#fff;color:var(--mtx-muted);font-size:.88rem;line-height:1.45}\n    .mtx-alert.is-warning{border-color:#f8dfaa;background:#fff8ea;color:var(--mtx-warning)}\n    .mtx-alert.is-danger{border-color:#ffd3d9;background:#fff6f7;color:var(--mtx-danger)}\n    .mtx-actions{display:flex;align-items:center;gap:12px;margin-top:22px}\n    .mtx-actions .mtx-spacer{flex:1}\n    .mtx-btn{appearance:none;border:1px solid var(--mtx-border);border-radius:50px;min-height:48px;padding:0 18px;font:800 .95rem\/1 Poppins,Tahoma,Geneva,Verdana,sans-serif;cursor:pointer;background:#fff;color:var(--mtx-navy)}\n    .mtx-btn:focus-visible{outline:2px solid var(--mtx-green);outline-offset:2px}\n    .mtx-btn-primary{border-radius:50px;background:var(--mtx-green);color:#fff}\n    .mtx-btn[hidden]{display:none}\n    @media (max-width:900px){.mtx-kpi-grid,.mtx-grid-three,.mtx-options-three{grid-template-columns:repeat(2,minmax(0,1fr))}}\n    @media (max-width:760px){.mtx-calculator{padding:14px 10px}.mt-tool-hero{padding:14px 0 18px}.mt-tool-hero h1{font-size:1.8rem}.mt-tool-hero p{font-size:.95rem;line-height:1.55}.mtx-stepper{gap:4px;padding:5px}.mtx-step-dot{min-height:44px}.mtx-step-dot span{width:28px;height:28px;font-size:.9rem}.mtx-panel{padding:18px 14px}.mtx-grid,.mtx-grid-three,.mtx-options,.mtx-options-three,.mtx-kpi-grid{grid-template-columns:1fr}.mtx-actions{display:grid;grid-template-columns:1fr}.mtx-actions .mtx-spacer{display:none}.mtx-btn{width:100%}.mtx-next{order:2}.mtx-back{order:1}.mtx-reset{order:3}.mtx-breakdown-row{display:grid}.mtx-breakdown-row strong{text-align:left}}\n    @media (prefers-reduced-motion:reduce){.mtx-calculator *{scroll-behavior:auto!important;transition-duration:0s!important;animation-duration:0s!important}}\n  <\/style>\n<style data-mt-scale=\"compact-v26.1\">\n:where([data-muay-v3]) {\n  font-size: 14px !important;\n  line-height: 1.45 !important;\n}\n\n:where(.mt-tool-hero) {\n  display: flex !important;\n  flex-direction: column !important;\n  align-items: center !important;\n  width: 100% !important;\n  padding: 16px 0 20px !important;\n  text-align: center !important;\n}\n\n:where(.mt-tool-hero) h1 {\n  width: 100% !important;\n  max-width: 980px !important;\n  margin: 0 0 10px !important;\n  color: #031549 !important;\n  font-family: Poppins, Tahoma, Geneva, Verdana, sans-serif !important;\n  font-size: clamp(24.8px, 2.6vw, 31.5px) !important;\n  font-weight: 800 !important;\n  line-height: 1.16 !important;\n  letter-spacing: 0 !important;\n  text-align: center !important;\n  text-transform: none !important;\n}\n\n:where(.mt-tool-hero) h1 span {\n  color: #007a47 !important;\n}\n\n:where(.mt-tool-hero) p {\n  width: 100% !important;\n  max-width: 780px !important;\n  margin: 0 !important;\n  color: #031549 !important;\n  font-family: Poppins, Tahoma, Geneva, Verdana, sans-serif !important;\n  font-size: 14.4px !important;\n  font-weight: 400 !important;\n  line-height: 1.55 !important;\n  text-align: center !important;\n}\n\n[data-muay-v3][data-muay-v3] .mt-tool-hero h1 {\n  font-size: clamp(24.8px, 2.6vw, 31.5px) !important;\n}\n\n:where([data-muay-v3]) :is(.calc-nav-row,.rc-nav-row,.gp-nav-row,.autemp-actions,.mtvat-foot,.mtaz-foot,.calc-foot,.rap-actions) > :only-child {\n  margin-left: auto !important;\n}\n\n:where([data-muay-v3]) :is(.calc-nav-row,.rc-nav-row,.gp-nav-row,.autemp-actions,.mtvat-foot,.mtaz-foot,.calc-foot,.rap-actions) > :is(button,a):last-child {\n  margin-left: auto !important;\n}\n\n:where([data-muay-v3]) :is(.autemp-actions,.rap-actions) > :is(#autemp-next,#autemp-reset,#rap-next-btn,#rap-restart-btn) {\n  margin-left: auto !important;\n}\n\n:where([data-muay-v3]) :is(.calc-nav-row,.rc-nav-row,.gp-nav-row,.autemp-actions,.mtvat-foot,.mtaz-foot,.calc-foot,.rap-actions) > :is(button,a) :is(svg,[data-icon],[aria-hidden=\"true\"]) {\n  display: none !important;\n}\n\n:where([data-muay-v3]) .gp-prefixed {\n  padding-left: 46px !important;\n}\n\n:where([data-muay-v3]),\n:where([data-muay-v3]) * {\n  font-family: Poppins, Tahoma, Geneva, Verdana, sans-serif !important;\n}\n\n:where([data-muay-v3]) :is(.calc-panel-title,.rc-panel-title,.gp-panel-title,.gp-question-title,.mtvat-question-title,.mtaz-question-title,.rap-question-title,.autemp-panel h2,.mtx-step h2,.mtx-panel h2) {\n  margin-top: 0 !important;\n  color: #031549 !important;\n  font-family: Poppins, Tahoma, Geneva, Verdana, sans-serif !important;\n  font-size: clamp(18.88px, 2vw, 19.6px) !important;\n  font-weight: 800 !important;\n  line-height: 1.25 !important;\n  letter-spacing: 0 !important;\n}\n\n:where([data-muay-v3]) :is(.calc-panel-subtitle,.rc-panel-subtitle,.gp-help,.mtvat-help,.mtaz-help,.rap-question > p,.autemp-panel-lead,.mtx-step-intro,.mtx-help) {\n  color: #5b6380 !important;\n  font-family: Poppins, Tahoma, Geneva, Verdana, sans-serif !important;\n  font-size: 13.44px !important;\n  font-weight: 400 !important;\n  line-height: 1.5 !important;\n}\n\n:where([data-muay-v3]) :is(.calc-choices,.rc-choices,.gp-source-list,.gp-mode-grid,.mtvat-options,.mtaz-options,.rap-options,.calc-ops-grid,.calc-countries-grid,.calc-radio-grid,.mtx-options) {\n  gap: 8px !important;\n}\n\n:where([data-muay-v3]) :is(.calc-choice,.rc-choice,.gp-choice,.gp-source-check,.gp-mode-btn,.gp-switch-card,.mtvat-option,.mtaz-option,.rap-option,.calc-op-card,.calc-radio-card,.calc-country-card,.calc-toggle-row,.calc-radio-pill label,.mtx-card) {\n  box-sizing: border-box !important;\n  position: relative !important;\n  min-height: 58px !important;\n  padding: 11px 12px !important;\n  border: 2px solid #e5ecf7 !important;\n  border-radius: 8px !important;\n  background: #fff !important;\n  color: #031549 !important;\n  cursor: pointer !important;\n  font-family: Poppins, Tahoma, Geneva, Verdana, sans-serif !important;\n  font-size: 14.08px !important;\n  font-weight: 700 !important;\n  line-height: 1.35 !important;\n  text-align: left !important;\n  box-shadow: none !important;\n  transition: border-color .18s, background-color .18s, color .18s, transform .12s !important;\n}\n\n:where([data-muay-v3]) :is(.calc-choice,.rc-choice,.gp-choice,.gp-source-check,.gp-mode-btn,.gp-switch-card,.mtvat-option,.mtaz-option,.rap-option,.calc-op-card,.calc-radio-card,.calc-country-card,.calc-toggle-row,.calc-radio-pill label,.mtx-card):hover {\n  border-color: #007a47 !important;\n  background: #f3fdf8 !important;\n}\n\n:where([data-muay-v3]) :is(.calc-choice,.rc-choice,.gp-choice,.gp-source-check,.gp-mode-btn,.gp-switch-card,.mtvat-option,.mtaz-option,.rap-option,.calc-op-card,.calc-radio-card,.calc-country-card,.calc-toggle-row,.calc-radio-pill label,.mtx-card):is(.selected,.is-selected,.is-on,.active,.on),\n:where([data-muay-v3]) :is(.gp-source-check,.gp-switch-card,.calc-op-card,.calc-radio-card,.calc-country-card,.calc-toggle-row,.mtx-card):has(input:checked),\n:where([data-muay-v3]) .calc-radio-pill input:checked + label {\n  border-color: #007a47 !important;\n  background: #d9ffee !important;\n  color: #031549 !important;\n}\n\n:where([data-muay-v3]) :is(.mtvat-marker,.mtaz-marker,.rap-marker) {\n  display: none !important;\n}\n\n:where([data-muay-v3]) :is(.calc-country-card,.calc-radio-card,.gp-source-check,.gp-switch-card,.calc-toggle-row,.rc-choice-check,.calc-op-card) :is(input[type=\"checkbox\"],input[type=\"radio\"]) {\n  position: absolute !important;\n  inset: 0 !important;\n  width: 100% !important;\n  height: 100% !important;\n  margin: 0 !important;\n  opacity: 0 !important;\n  cursor: pointer !important;\n}\n\n:where([data-muay-v3]) .mtvat-option {\n  grid-template-columns: 1fr !important;\n}\n\n:where([data-muay-v3]) .mtaz-option {\n  grid-template-columns: 1fr !important;\n}\n\n:where([data-muay-v3]) .mtaz-option.has-icon {\n  grid-template-columns: 32px 1fr !important;\n}\n\n:where([data-muay-v3]) .rap-option {\n  grid-template-columns: 30px 1fr !important;\n}\n\n:where([data-muay-v3]) :is(.calc-choice strong,.gp-mode-title,.gp-source-title,.gp-switch-title,.mtvat-opt-title,.mtaz-opt-text,.rap-option strong,.calc-op-name,.calc-country-name,.calc-radio-card strong,.calc-toggle-row .tl,.mtx-card-title) {\n  color: #031549 !important;\n  font-family: Poppins, Tahoma, Geneva, Verdana, sans-serif !important;\n  font-size: 14.08px !important;\n  font-weight: 800 !important;\n  line-height: 1.35 !important;\n}\n\n:where([data-muay-v3]) :is(.calc-choice span,.gp-mode-desc,.gp-source-desc,.gp-switch-desc,.mtvat-opt-detail,.rap-option .detail,.calc-country-vat,.calc-radio-card span,.calc-toggle-row .ts,.mtx-card-text) {\n  color: #5b6380 !important;\n  font-family: Poppins, Tahoma, Geneva, Verdana, sans-serif !important;\n  font-size: 11.84px !important;\n  font-weight: 500 !important;\n  line-height: 1.5 !important;\n}\n\n[data-muay-v3][data-muay-v3] :is(.calc-step-num,.rc-step-num,.gp-step-num,.mtvat-step-num,.mtaz-step-num,.rap-step-num,.autemp-step > span,.mtx-step-dot span) {\n  width: 24px !important;\n  height: 24px !important;\n  min-width: 24px !important;\n  min-height: 24px !important;\n  max-width: 24px !important;\n  max-height: 24px !important;\n  flex: 0 0 24px !important;\n  aspect-ratio: 1 !important;\n}\n\n:where([data-muay-v3]) :is(.calc-panel,.rc-panel,.gp-panel,.mtvat-question,.mtaz-question,.rap-question,.autemp-panel,.mtx-panel) {\n  padding: 16px 14px !important;\n}\n\n:where([data-muay-v3]) :is(.calc-label,.rc-label,.gp-label,.mtvat-label,.mtaz-label,.rap-label,.autemp-field label,.mtx-label,.mtx-legend) {\n  font-size: 14.4px !important;\n  line-height: 1.3 !important;\n}\n\n:where([data-muay-v3]) :is(.calc-input,.calc-select,.rc-input,.rc-select,.gp-input,.gp-select,.mtvat-input,.mtvat-select,.mtaz-input,.mtaz-select,.rap-input,.rap-select,.autemp-field input,.autemp-field select,.mtx-input,.mtx-select) {\n  min-height: 44px !important;\n  height: 44px !important;\n  padding-top: 0 !important;\n  padding-bottom: 0 !important;\n  border-radius: 8px !important;\n  font-size: 14.72px !important;\n  line-height: 1.2 !important;\n}\n\n:where([data-muay-v3]) :is(.calc-btn,.rc-btn,.gp-btn,.mtvat-btn,.mtaz-btn,.rap-btn,.autemp-btn,.mtx-btn,.hs-button) {\n  min-height: 44px !important;\n  padding: 0 16px !important;\n  border-radius: 8px !important;\n  font-size: 14.4px !important;\n  line-height: 1.1 !important;\n}\n\n@media (max-width: 520px) {\n  :where(.mt-tool-hero) {\n    padding: 12px 0 16px !important;\n  }\n\n  :where(.mt-tool-hero) h1 {\n    font-size: 24.8px !important;\n  }\n\n  [data-muay-v3][data-muay-v3] .mt-tool-hero h1 {\n    font-size: 24.8px !important;\n  }\n\n  :where(.mt-tool-hero) p {\n    font-size: 14.4px !important;\n    line-height: 1.55 !important;\n  }\n\n  :where([data-muay-v3]) :is(.calc-panel-title,.rc-panel-title,.gp-panel-title,.gp-question-title,.mtvat-question-title,.mtaz-question-title,.rap-question-title,.autemp-panel h2,.mtx-step h2,.mtx-panel h2) {\n    font-size: 18.88px !important;\n  }\n\n  :where([data-muay-v3]) :is(.calc-choice,.rc-choice,.gp-choice,.gp-source-check,.gp-mode-btn,.gp-switch-card,.mtvat-option,.mtaz-option,.rap-option,.calc-op-card,.calc-radio-card,.calc-country-card,.calc-toggle-row,.calc-radio-pill label,.mtx-card) {\n    min-height: 58px !important;\n    padding: 10px 11px !important;\n  }\n}\n<\/style>\n\n  <div class=\"mt-tool-hero\">\n    <h1>Calculadora de <span style=\"color:#008a51;\">n\u00f3minas y costes laborales<\/span><\/h1>\n    <p>Estima coste por persona y por equipo, cotizaciones 2026, presupuesto anual y sueldo neto orientativo.<\/p>\n  <\/div>\n  <nav class=\"mtx-stepper\" style=\"--steps:6\" role=\"tablist\" aria-label=\"Pasos de la calculadora\">\n    <button class=\"mtx-step-dot is-active\" id=\"mtx-tab-1\" type=\"button\" role=\"tab\" data-step-target=\"1\" aria-controls=\"mtx-panel-1\" aria-selected=\"true\" aria-current=\"step\"><span>1<\/span><\/button>\n    <button class=\"mtx-step-dot\" id=\"mtx-tab-2\" type=\"button\" role=\"tab\" data-step-target=\"2\" aria-controls=\"mtx-panel-2\" aria-selected=\"false\"><span>2<\/span><\/button>\n    <button class=\"mtx-step-dot\" id=\"mtx-tab-3\" type=\"button\" role=\"tab\" data-step-target=\"3\" aria-controls=\"mtx-panel-3\" aria-selected=\"false\"><span>3<\/span><\/button>\n    <button class=\"mtx-step-dot\" id=\"mtx-tab-4\" type=\"button\" role=\"tab\" data-step-target=\"4\" aria-controls=\"mtx-panel-4\" aria-selected=\"false\"><span>4<\/span><\/button>\n    <button class=\"mtx-step-dot\" id=\"mtx-tab-5\" type=\"button\" role=\"tab\" data-step-target=\"5\" aria-controls=\"mtx-panel-5\" aria-selected=\"false\"><span>5<\/span><\/button>\n    <button class=\"mtx-step-dot is-locked\" id=\"mtx-tab-6\" type=\"button\" role=\"tab\" data-step-target=\"6\" aria-controls=\"mtx-panel-6\" aria-selected=\"false\" aria-disabled=\"true\" disabled><span>6<\/span><\/button>\n  <\/nav>\n  <div class=\"mtx-panel\" data-mtx-form>\n    <section class=\"mtx-step is-active\" id=\"mtx-panel-1\" data-step=\"1\" role=\"tabpanel\" aria-labelledby=\"mtx-tab-1\">\n      <h2>Paso 1 \u00b7 Contrato y cotizaci\u00f3n<\/h2>\n      <p class=\"mtx-step-intro\">Define el tipo de contrato, grupo de cotizaci\u00f3n y jornada para calcular la base mensual aplicable.<\/p>\n      <fieldset class=\"mtx-fieldset\">\n        <legend class=\"mtx-legend\">Tipo de contrato<\/legend>\n        <div class=\"mtx-options\">\n          <label class=\"mtx-card\">\n            <input type=\"radio\" name=\"contrato\" value=\"indefinido\" checked>\n            <span class=\"mtx-card-title\">Indefinido o tipo general<\/span>\n            <span class=\"mtx-card-text\">Aplica desempleo empresa 5,50% y trabajador 1,55%.<\/span>\n          <\/label>\n          <label class=\"mtx-card\">\n            <input type=\"radio\" name=\"contrato\" value=\"temporal\">\n            <span class=\"mtx-card-title\">Temporal<\/span>\n            <span class=\"mtx-card-text\">Aplica desempleo empresa 6,70% y trabajador 1,60%.<\/span>\n          <\/label>\n        <\/div>\n      <\/fieldset>\n      <div class=\"mtx-grid\">\n        <label class=\"mtx-field\" for=\"mtx-temporal-subtipo\">\n          <span class=\"mtx-label\">Subtipo de contrato temporal<\/span>\n          <select class=\"mtx-select\" id=\"mtx-temporal-subtipo\">\n            <option value=\"duracion_determinada\" selected>Duraci\u00f3n determinada general<\/option>\n            <option value=\"sustitucion\">Sustituci\u00f3n (sin recargo por contrato corto)<\/option>\n            <option value=\"formativo\">Formativo o alternancia (sin recargo por contrato corto)<\/option>\n            <option value=\"relevo\">Relevo (sin recargo por contrato corto)<\/option>\n          <\/select>\n          <span class=\"mtx-help\">Solo se usa cuando seleccionas contrato temporal.<\/span>\n        <\/label>\n        <label class=\"mtx-field\" for=\"mtx-dias-contrato\">\n          <span class=\"mtx-label\">Duraci\u00f3n prevista del contrato (d\u00edas)<\/span>\n          <input class=\"mtx-input\" id=\"mtx-dias-contrato\" type=\"text\" inputmode=\"numeric\" value=\"30\">\n          <span class=\"mtx-help\">Los contratos generales inferiores a 30 d\u00edas a\u00f1aden 33,62 \u20ac al finalizar.<\/span>\n        <\/label>\n      <\/div>\n      <div class=\"mtx-grid\">\n        <label class=\"mtx-field\" for=\"mtx-grupo\">\n          <span class=\"mtx-label\">Grupo de cotizaci\u00f3n<\/span>\n          <select class=\"mtx-select\" id=\"mtx-grupo\" name=\"grupo\">\n            <option value=\"1\">Grupo 1 \u00b7 Ingenieros y licenciados<\/option>\n            <option value=\"2\">Grupo 2 \u00b7 Ingenieros t\u00e9cnicos y ayudantes<\/option>\n            <option value=\"3\">Grupo 3 \u00b7 Jefes administrativos y taller<\/option>\n            <option value=\"4\" selected>Grupos 4 a 11 \u00b7 Resto de trabajadores<\/option>\n          <\/select>\n          <span class=\"mtx-help\">Se usa para aplicar la base m\u00ednima mensual 2026.<\/span>\n        <\/label>\n        <label class=\"mtx-field\" for=\"mtx-jornada\">\n          <span class=\"mtx-label\">Jornada<\/span>\n          <input class=\"mtx-input\" id=\"mtx-jornada\" type=\"text\" inputmode=\"decimal\" name=\"jornada\" value=\"100\">\n          <span class=\"mtx-help\">Porcentaje de jornada. Ejemplo: 50 para media jornada.<\/span>\n        <\/label>\n        <label class=\"mtx-field\" for=\"mtx-horas-mes\">\n          <span class=\"mtx-label\">Horas trabajadas al mes<\/span>\n          <input class=\"mtx-input\" id=\"mtx-horas-mes\" type=\"text\" inputmode=\"decimal\" name=\"horasMes\" placeholder=\"Ej. 80\">\n          <span class=\"mtx-help\">En jornada parcial se usa la base m\u00ednima horaria real del grupo.<\/span>\n        <\/label>\n      <\/div>\n    <\/section>\n    <section class=\"mtx-step\" id=\"mtx-panel-2\" data-step=\"2\" role=\"tabpanel\" aria-labelledby=\"mtx-tab-2\">\n      <h2>Paso 2 \u00b7 Salario y pagas<\/h2>\n      <p class=\"mtx-step-intro\">Introduce el salario bruto anual y c\u00f3mo se reparte. Los importes se pueden escribir con coma decimal.<\/p>\n      <div class=\"mtx-grid\">\n        <label class=\"mtx-field\" for=\"mtx-salario\">\n          <span class=\"mtx-label\">Salario bruto anual<\/span>\n          <input class=\"mtx-input\" id=\"mtx-salario\" type=\"text\" inputmode=\"decimal\" name=\"salario\" placeholder=\"Ej. 30000\">\n          <span class=\"mtx-help\">Incluye salario fijo bruto anual. No a\u00f1adas s\u00edmbolos.<\/span>\n        <\/label>\n        <label class=\"mtx-field\" for=\"mtx-irpf\">\n          <span class=\"mtx-label\">Retenci\u00f3n IRPF estimada<\/span>\n          <input class=\"mtx-input\" id=\"mtx-irpf\" type=\"text\" inputmode=\"decimal\" name=\"irpf\" value=\"15\">\n          <span class=\"mtx-help\">Porcentaje manual para estimar el neto. No calcula circunstancias personales.<\/span>\n        <\/label>\n      <\/div>\n      <fieldset class=\"mtx-fieldset\">\n        <legend class=\"mtx-legend\">N\u00famero de pagas<\/legend>\n        <div class=\"mtx-options\">\n          <label class=\"mtx-card\">\n            <input type=\"radio\" name=\"pagas\" value=\"12\" checked>\n            <span class=\"mtx-card-title\">12 pagas<\/span>\n            <span class=\"mtx-card-text\">El neto por paga se reparte en doce pagos.<\/span>\n          <\/label>\n          <label class=\"mtx-card\">\n            <input type=\"radio\" name=\"pagas\" value=\"14\">\n            <span class=\"mtx-card-title\">14 pagas<\/span>\n            <span class=\"mtx-card-text\">El neto por paga se reparte en catorce pagos.<\/span>\n          <\/label>\n        <\/div>\n      <\/fieldset>\n    <\/section>\n    <section class=\"mtx-step\" id=\"mtx-panel-3\" data-step=\"3\" role=\"tabpanel\" aria-labelledby=\"mtx-tab-3\">\n      <h2>Paso 3 \u00b7 Costes de empresa<\/h2>\n      <p class=\"mtx-step-intro\">Selecciona el tipo de accidentes de trabajo y a\u00f1ade otros costes mensuales si quieres medir el coste total interno.<\/p>\n      <fieldset class=\"mtx-fieldset\">\n        <legend class=\"mtx-legend\">Tipo AT\/EP<\/legend>\n        <div class=\"mtx-options\">\n          <label class=\"mtx-card\">\n            <input type=\"radio\" name=\"atep\" value=\"oficina\" checked>\n            <span class=\"mtx-card-title\">Trabajos exclusivos de oficina<\/span>\n            <span class=\"mtx-card-text\">Usa 1,50% como tipo AT\/EP de referencia.<\/span>\n          <\/label>\n          <label class=\"mtx-card\">\n            <input type=\"radio\" name=\"atep\" value=\"manual\">\n            <span class=\"mtx-card-title\">Tipo manual<\/span>\n            <span class=\"mtx-card-text\">Introduce el porcentaje si conoces el CNAE u ocupaci\u00f3n aplicable.<\/span>\n          <\/label>\n        <\/div>\n      <\/fieldset>\n      <div class=\"mtx-grid\">\n        <label class=\"mtx-field mtx-manual-rate\" id=\"mtx-atep-manual-wrap\" for=\"mtx-atep-manual\">\n          <span class=\"mtx-label\">Tipo AT\/EP manual<\/span>\n          <input class=\"mtx-input\" id=\"mtx-atep-manual\" type=\"text\" inputmode=\"decimal\" name=\"atepManual\" value=\"1,50\">\n          <span class=\"mtx-help\">Introduce el porcentaje sin s\u00edmbolo. Si queda vac\u00edo, se usa 1,50%.<\/span>\n        <\/label>\n        <label class=\"mtx-field\" for=\"mtx-otros-costes\">\n          <span class=\"mtx-label\">Otros costes mensuales de empresa<\/span>\n          <input class=\"mtx-input\" id=\"mtx-otros-costes\" type=\"text\" inputmode=\"decimal\" name=\"otrosCostes\" value=\"0\">\n          <span class=\"mtx-help\">Herramientas, equipo, beneficios, formaci\u00f3n u otros costes internos.<\/span>\n        <\/label>\n        <label class=\"mtx-field\" for=\"mtx-units\">\n          <span class=\"mtx-label\">Puestos equivalentes a presupuestar<\/span>\n          <input class=\"mtx-input\" id=\"mtx-units\" type=\"text\" inputmode=\"numeric\" value=\"1\">\n          <span class=\"mtx-help\">Multiplica el coste del mismo perfil entre 1 y 100 personas.<\/span>\n        <\/label>\n      <\/div>\n      <div class=\"mtx-fixed-cost\" aria-label=\"Alcance del c\u00e1lculo\">\n        <strong>Coste empresa, no asesor\u00eda externa<\/strong>\n        <span>La herramienta calcula costes laborales. No a\u00f1ade ni permite editar costes de gestor\u00eda o asesor\u00eda profesional.<\/span>\n      <\/div>\n    <\/section>\n    <section class=\"mtx-step\" id=\"mtx-panel-4\" data-step=\"4\" role=\"tabpanel\" aria-labelledby=\"mtx-tab-4\">\n      <h2>Paso 4 \u00b7 Tu situaci\u00f3n de contrataci\u00f3n<\/h2>\n      <p class=\"mtx-step-intro\">Estas respuestas permiten contextualizar el c\u00e1lculo y se enviar\u00e1n autom\u00e1ticamente como propiedades ocultas.<\/p>\n      <fieldset class=\"mtx-fieldset\">\n        <legend class=\"mtx-legend\">Figura fiscal<\/legend>\n        <div class=\"mtx-options\">\n          <label class=\"mtx-card\"><input type=\"radio\" name=\"nominasFigura\" value=\"autonomo\"><span class=\"mtx-card-title\">Aut\u00f3nomo<\/span><\/label>\n          <label class=\"mtx-card\"><input type=\"radio\" name=\"nominasFigura\" value=\"sl\"><span class=\"mtx-card-title\">Sociedad limitada (SL)<\/span><\/label>\n          <label class=\"mtx-card\"><input type=\"radio\" name=\"nominasFigura\" value=\"otra_sociedad\"><span class=\"mtx-card-title\">Otra sociedad<\/span><\/label>\n          <label class=\"mtx-card\"><input type=\"radio\" name=\"nominasFigura\" value=\"sin_actividad\"><span class=\"mtx-card-title\">A\u00fan no tengo actividad<\/span><\/label>\n        <\/div>\n      <\/fieldset>\n      <fieldset class=\"mtx-fieldset\">\n        <legend class=\"mtx-legend\">N\u00famero actual de empleados<\/legend>\n        <div class=\"mtx-options mtx-options-three\">\n          <label class=\"mtx-card\"><input type=\"radio\" name=\"nominasEmpleados\" value=\"0\"><span class=\"mtx-card-title\">0<\/span><\/label>\n          <label class=\"mtx-card\"><input type=\"radio\" name=\"nominasEmpleados\" value=\"1\"><span class=\"mtx-card-title\">1<\/span><\/label>\n          <label class=\"mtx-card\"><input type=\"radio\" name=\"nominasEmpleados\" value=\"2_5\"><span class=\"mtx-card-title\">2 a 5<\/span><\/label>\n          <label class=\"mtx-card\"><input type=\"radio\" name=\"nominasEmpleados\" value=\"6_10\"><span class=\"mtx-card-title\">6 a 10<\/span><\/label>\n          <label class=\"mtx-card\"><input type=\"radio\" name=\"nominasEmpleados\" value=\"11_25\"><span class=\"mtx-card-title\">11 a 25<\/span><\/label>\n          <label class=\"mtx-card\"><input type=\"radio\" name=\"nominasEmpleados\" value=\"mas_25\"><span class=\"mtx-card-title\">M\u00e1s de 25<\/span><\/label>\n        <\/div>\n      <\/fieldset>\n      <fieldset class=\"mtx-fieldset\">\n        <legend class=\"mtx-legend\">Horizonte de contrataci\u00f3n<\/legend>\n        <div class=\"mtx-options\">\n          <label class=\"mtx-card\"><input type=\"radio\" name=\"nominasHorizonte\" value=\"ya_tengo_empleados\"><span class=\"mtx-card-title\">Ya tengo empleados<\/span><\/label>\n          <label class=\"mtx-card\"><input type=\"radio\" name=\"nominasHorizonte\" value=\"este_mes\"><span class=\"mtx-card-title\">Quiero contratar este mes<\/span><\/label>\n          <label class=\"mtx-card\"><input type=\"radio\" name=\"nominasHorizonte\" value=\"1_3_meses\"><span class=\"mtx-card-title\">En 1 a 3 meses<\/span><\/label>\n          <label class=\"mtx-card\"><input type=\"radio\" name=\"nominasHorizonte\" value=\"3_6_meses\"><span class=\"mtx-card-title\">En 3 a 6 meses<\/span><\/label>\n          <label class=\"mtx-card\"><input type=\"radio\" name=\"nominasHorizonte\" value=\"valorando\"><span class=\"mtx-card-title\">Solo estoy valor\u00e1ndolo<\/span><\/label>\n        <\/div>\n      <\/fieldset>\n    <\/section>\n    <section class=\"mtx-step\" id=\"mtx-panel-5\" data-step=\"5\" role=\"tabpanel\" aria-labelledby=\"mtx-tab-5\">\n      <h2>Paso 5 \u00b7 Recibe el desglose completo<\/h2>\n      <p class=\"mtx-step-intro\">Indica tu email y, si quieres, tu tel\u00e9fono para desbloquear la estimaci\u00f3n detallada.<\/p>\n      <div class=\"mtx-lead-box\">\n        <p class=\"mtx-lead-note\">Tu c\u00e1lculo est\u00e1 preparado. Al enviar tus datos ver\u00e1s el coste empresa, el neto orientativo y todas las cotizaciones desglosadas.<\/p>\n        <div class=\"mtx-hubspot-form\" id=\"mtx-nominas-hubspot-form\" aria-label=\"Formulario para recibir el desglose completo\"><\/div>\n        <p class=\"mtx-hubspot-status\" id=\"mtx-hubspot-status\" role=\"status\" aria-live=\"polite\"><\/p>\n      <\/div>\n    <\/section>\n    <section class=\"mtx-step\" id=\"mtx-panel-6\" data-step=\"6\" role=\"tabpanel\" aria-labelledby=\"mtx-tab-6\">\n      <h2>Paso 6 \u00b7 Resultado<\/h2>\n      <p class=\"mtx-step-intro\">El resultado se actualiza en tiempo real. El neto es orientativo porque el IRPF se introduce manualmente.<\/p>\n      <div class=\"mtx-result is-visible\" aria-live=\"polite\" aria-atomic=\"true\">\n        <div class=\"mtx-result-main\" id=\"mtx-verdict-box\">\n          <span class=\"mtx-result-kicker\" id=\"mtx-verdict-kicker\">Estimaci\u00f3n inicial<\/span>\n          <strong class=\"mtx-result-title\" id=\"mtx-verdict-title\">Introduce salario bruto anual para calcular el coste laboral.<\/strong>\n          <p class=\"mtx-result-copy\" id=\"mtx-verdict-copy\">La herramienta estima Seguridad Social de empresa, Seguridad Social del trabajador, IRPF manual y coste total.<\/p>\n        <\/div>\n        <div class=\"mtx-kpi-grid\">\n          <div class=\"mtx-kpi\">\n            <span>Coste empresa mensual<\/span>\n            <strong class=\"is-green\" id=\"mtx-coste-mensual\">0,00 \u20ac<\/strong>\n          <\/div>\n          <div class=\"mtx-kpi\">\n            <span>Coste empresa anual<\/span>\n            <strong id=\"mtx-coste-anual\">0,00 \u20ac<\/strong>\n          <\/div>\n          <div class=\"mtx-kpi\">\n            <span>Neto por paga<\/span>\n            <strong id=\"mtx-neto-paga\">0,00 \u20ac<\/strong>\n          <\/div>\n        <\/div>\n        <div class=\"mtx-kpi-grid\">\n          <div class=\"mtx-kpi\">\n            <span>Neto anual orientativo<\/span>\n            <strong id=\"mtx-neto-anual\">0,00 \u20ac<\/strong>\n          <\/div>\n          <div class=\"mtx-kpi\">\n            <span>SS empresa<\/span>\n            <strong id=\"mtx-ss-empresa\">0,00 \u20ac<\/strong>\n          <\/div>\n          <div class=\"mtx-kpi\">\n            <span>Coste por euro neto<\/span>\n            <strong id=\"mtx-coste-euro\">No calculable<\/strong>\n          <\/div>\n        <\/div>\n        <div class=\"mtx-breakdown\">\n          <div class=\"mtx-breakdown-row\"><span>Salario bruto anual<\/span><strong id=\"mtx-bruto-anual\">0,00 \u20ac<\/strong><\/div>\n          <div class=\"mtx-breakdown-row\"><span>Base cotizaci\u00f3n mensual<\/span><strong id=\"mtx-base-mensual\">0,00 \u20ac<\/strong><\/div>\n          <div class=\"mtx-breakdown-row\"><span>Seguridad Social trabajador<\/span><strong id=\"mtx-ss-trabajador\">0,00 \u20ac<\/strong><\/div>\n          <div class=\"mtx-breakdown-row\"><span>IRPF manual aplicado<\/span><strong id=\"mtx-irpf-aplicado\">0,00 \u20ac<\/strong><\/div>\n          <div class=\"mtx-breakdown-row\"><span>Tipo empresa aplicado<\/span><strong id=\"mtx-tipo-empresa\">0,00%<\/strong><\/div>\n          <div class=\"mtx-breakdown-row\"><span>Otros costes anuales<\/span><strong id=\"mtx-otros-anual\">0,00 \u20ac<\/strong><\/div>\n          <div class=\"mtx-breakdown-row\"><span>Cuota solidaridad total<\/span><strong id=\"mtx-solidaridad\">0,00 \u20ac<\/strong><\/div>\n        <\/div>\n        <div class=\"mtx-next-insights\" aria-label=\"Presupuesto avanzado de contrataci\u00f3n\">\n          <div class=\"mtx-next-card\"><span>Presupuesto mensual del equipo<\/span><strong id=\"mtx-team-monthly\">0,00 \u20ac<\/strong><\/div>\n          <div class=\"mtx-next-card\"><span>Presupuesto anual del equipo<\/span><strong id=\"mtx-team-annual\">0,00 \u20ac<\/strong><\/div>\n          <div class=\"mtx-next-card\"><span>Sobrecoste empresarial sobre bruto<\/span><strong id=\"mtx-employer-uplift\">0,00%<\/strong><\/div>\n        <\/div>\n        <div class=\"mtx-next-message\" id=\"mtx-next-message\">Introduce un salario para dimensionar el presupuesto.<\/div>\n        <div class=\"mtx-alerts\" id=\"mtx-alerts\"><\/div>\n      <\/div>\n    <\/section>\n    <div class=\"mtx-actions\">\n      <button class=\"mtx-btn mtx-back\" type=\"button\" hidden>Anterior<\/button>\n      <span class=\"mtx-spacer\"><\/span>\n      <button class=\"mtx-btn mtx-btn-primary mtx-next\" type=\"button\">Siguiente<\/button>\n      <button class=\"mtx-btn mtx-reset\" type=\"button\" hidden>Reiniciar<\/button>\n    <\/div>\n  <\/div>\n<style data-mt-next-level=\"payroll-v26.9\">\n.mtx-calculator[data-calculator-version=\"v26.9\"] .mtx-next-insights{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0}\n.mtx-calculator[data-calculator-version=\"v26.9\"] .mtx-next-card{padding:12px;border:1px solid #e5ecf7;border-radius:8px;background:#f7faff}\n.mtx-calculator[data-calculator-version=\"v26.9\"] .mtx-next-card span{display:block;color:#5b6380;font-size:11.84px;font-weight:700;line-height:1.35}\n.mtx-calculator[data-calculator-version=\"v26.9\"] .mtx-next-card strong{display:block;margin-top:5px;color:#031549;font-size:14.72px;line-height:1.25}\n.mtx-calculator[data-calculator-version=\"v26.9\"] .mtx-next-message{padding:12px 14px;border-left:4px solid #007a47;border-radius:8px;background:#e8fbf2;color:#031549;line-height:1.5}\n@media(max-width:520px){.mtx-calculator[data-calculator-version=\"v26.9\"] .mtx-next-insights{grid-template-columns:1fr}}\n<\/style>\n<script data-mt-next-level-runtime=\"payroll-v26.9\">(function(){'use strict';\/* Mejora 2026-08-10: presupuesto multipuesto, sobrecoste empresarial y control SMI. *\/var root=document.currentScript.closest('.mtx-calculator');if(!root)return;var SMI=17094;function parseInput(id){var raw=String(root.querySelector('#'+id)?.value||'').trim().replace(\/\\s\/g,'');if(raw.includes(',')&&raw.includes('.'))raw=raw.lastIndexOf(',')>raw.lastIndexOf('.')?raw.replace(\/\\.\/g,'').replace(',','.'):raw.replace(\/,\/g,'');else if(raw.includes(','))raw=raw.replace(',','.');var value=Number(raw);return Number.isFinite(value)?Math.max(0,value):0}function euro(id){var text=root.querySelector('#'+id)?.textContent||'';var normalized=text.replace(\/[^\\d,.-]\/g,'').replace(\/\\.(?=\\d{3}(?:\\D|$))\/g,'').replace(',','.');return Number(normalized)||0}function money(value){return new Intl.NumberFormat('es-ES',{style:'currency',currency:'EUR',minimumFractionDigits:2,maximumFractionDigits:2}).format(Number(value)||0)}function percent(value){return Number(value).toLocaleString('es-ES',{minimumFractionDigits:2,maximumFractionDigits:2})+'%'}function render(){var salary=euro('mtx-bruto-anual');var annual=euro('mtx-coste-anual');var monthly=euro('mtx-coste-mensual');var others=euro('mtx-otros-anual');var units=Math.min(100,Math.max(1,Math.round(parseInput('mtx-units')||1)));var ssEmployer=Math.max(0,annual-salary-others);var uplift=salary>0?ssEmployer\/salary*100:0;root.querySelector('#mtx-team-monthly').textContent=money(monthly*units);root.querySelector('#mtx-team-annual').textContent=money(annual*units);root.querySelector('#mtx-employer-uplift').textContent=salary>0?percent(uplift):'0,00%';var jornada=Math.min(100,Math.max(1,parseInput('mtx-jornada')||100))\/100;var smi=SMI*jornada;var messages=[];if(salary<=0){messages.push('Introduce un salario para dimensionar el presupuesto.')}else{messages.push('Presupuestar '+units+' puesto'+(units>1?'s':'')+' equivalente'+(units>1?'s':'')+' exige '+money(annual*units)+' al a\u00f1o con los costes introducidos.');if(salary<smi)messages.push('El bruto queda por debajo del SMI anual proporcional de '+money(smi)+': revisa jornada, convenio y complementos salariales.');messages.push('El presupuesto no incluye indemnizaciones, absentismo, sustituciones ni bonificaciones no confirmadas. El IRPF sigue siendo manual y debe contrastarse con AEAT 2026.')}root.querySelector('#mtx-next-message').textContent=messages.join(' ')}function refresh(){setTimeout(render,0)}root.addEventListener('input',refresh);root.addEventListener('change',refresh);var result=root.querySelector('#mtx-panel-6');if(result)new MutationObserver(function(){if(result.classList.contains('is-active'))refresh()}).observe(result,{attributes:true,attributeFilter:['class']})})();<\/script>\n<script>\n    (() => {\n      const root = document.currentScript.closest(\".mtx-calculator\");\n      const steps = [...root.querySelectorAll(\"[data-step]\")];\n      const dots = [...root.querySelectorAll(\"[data-step-target]\")];\n      const back = root.querySelector(\".mtx-back\");\n      const next = root.querySelector(\".mtx-next\");\n      const reset = root.querySelector(\".mtx-reset\");\n      const formRoot = root.querySelector(\"[data-mtx-form]\");\n      const QUALIFICATION_STEP = 4;\n      const FORM_STEP = 5;\n      const RESULT_STEP = 6;\n      const HUBSPOT_PORTAL_ID = \"20760506\";\n      const HUBSPOT_FORM_ID = \"dd2add7e-15d7-4c49-a950-1c464b1fbc84\";\n      const HUBSPOT_REGION = \"na1\";\n      const HUBSPOT_TARGET = \"#mtx-nominas-hubspot-form\";\n      const HUBSPOT_FIELDS = {\n        figura: \"nominas_costes__figura_fiscal\",\n        empleados: \"nominas_costes__numero_empleados\",\n        horizonte: \"nominas_costes__horizonte_contratacion\",\n        salario: \"nominas_costes__salario_bruto_anual\",\n        costeMensual: \"nominas_costes__coste_empresa_mensual\",\n        resumen: \"nominas_costes__resumen\"\n      };\n      let current = 1;\n      const max = steps.length;\n      let hubspotLoaded = false;\n      let hubspotScriptRequested = false;\n      let hubspotSubmitted = false;\n      let hubspotSubmitFailed = false;\n      let hubspotFormRef = null;\n      let syncingHubspotHiddenFields = false;\n\n      \/\/ Correcci\u00f3n 2026-08-03: bases horarias reales, contratos cortos, jornada cero y reintento HubSpot.\n      \/\/ Datos laborales 2026 para Regimen General.\n      const DATA_2026 = {\n        baseMaximaMensual: 5101.20,\n        basesMinimas: { \"1\": 1989.30, \"2\": 1649.70, \"3\": 1435.20, \"4\": 1424.40 },\n        basesMinimasHora: { \"1\": 11.98, \"2\": 9.94, \"3\": 8.65, \"4\": 8.58 },\n        recargoContratoCorto: 33.62,\n        empresa: { comunes: 0.236, desempleoIndefinido: 0.055, desempleoTemporal: 0.067, fogasa: 0.002, formacion: 0.006, mei: 0.0075 },\n        trabajador: { comunes: 0.047, desempleoIndefinido: 0.0155, desempleoTemporal: 0.016, formacion: 0.001, mei: 0.0015 },\n        solidaridadEmpresa: [0.0096, 0.0104, 0.0122],\n        solidaridadTrabajador: [0.0019, 0.0021, 0.0024],\n        atepOficina: 0.015\n      };\n      const money = new Intl.NumberFormat(\"es-ES\", { style: \"currency\", currency: \"EUR\", minimumFractionDigits: 2, maximumFractionDigits: 2 });\n      const percent = new Intl.NumberFormat(\"es-ES\", { minimumFractionDigits: 2, maximumFractionDigits: 2 });\n      const els = {\n        grupo: root.querySelector(\"#mtx-grupo\"),\n        jornada: root.querySelector(\"#mtx-jornada\"),\n        horasMes: root.querySelector(\"#mtx-horas-mes\"),\n        temporalSubtipo: root.querySelector(\"#mtx-temporal-subtipo\"),\n        diasContrato: root.querySelector(\"#mtx-dias-contrato\"),\n        salario: root.querySelector(\"#mtx-salario\"),\n        irpf: root.querySelector(\"#mtx-irpf\"),\n        atepManual: root.querySelector(\"#mtx-atep-manual\"),\n        atepManualWrap: root.querySelector(\"#mtx-atep-manual-wrap\"),\n        otrosCostes: root.querySelector(\"#mtx-otros-costes\"),\n        verdictBox: root.querySelector(\"#mtx-verdict-box\"),\n        verdictKicker: root.querySelector(\"#mtx-verdict-kicker\"),\n        verdictTitle: root.querySelector(\"#mtx-verdict-title\"),\n        verdictCopy: root.querySelector(\"#mtx-verdict-copy\"),\n        costeMensual: root.querySelector(\"#mtx-coste-mensual\"),\n        costeAnual: root.querySelector(\"#mtx-coste-anual\"),\n        netoPaga: root.querySelector(\"#mtx-neto-paga\"),\n        netoAnual: root.querySelector(\"#mtx-neto-anual\"),\n        ssEmpresa: root.querySelector(\"#mtx-ss-empresa\"),\n        costeEuro: root.querySelector(\"#mtx-coste-euro\"),\n        brutoAnual: root.querySelector(\"#mtx-bruto-anual\"),\n        baseMensual: root.querySelector(\"#mtx-base-mensual\"),\n        ssTrabajador: root.querySelector(\"#mtx-ss-trabajador\"),\n        irpfAplicado: root.querySelector(\"#mtx-irpf-aplicado\"),\n        tipoEmpresa: root.querySelector(\"#mtx-tipo-empresa\"),\n        otrosAnual: root.querySelector(\"#mtx-otros-anual\"),\n        solidaridad: root.querySelector(\"#mtx-solidaridad\"),\n        alerts: root.querySelector(\"#mtx-alerts\"),\n        hubspotForm: root.querySelector(HUBSPOT_TARGET),\n        hubspotStatus: root.querySelector(\"#mtx-hubspot-status\")\n      };\n\n      \/\/ Lectura de inputs y normalizacion de importes en formato espanol.\n      const selected = name => root.querySelector(`input[name=\"${name}\"]:checked`)?.value || \"\";\n      const parseLocale = input => {\n        const original = String(input?.value || \"\").trim();\n        if (!original) return { value: 0, negative: false, invalid: false };\n        let raw = original.replace(\/[^\\d,.-]\/g, \"\");\n        const negative = raw.startsWith(\"-\") || Number(raw.replace(\",\", \".\")) < 0;\n        const comma = (raw.match(\/,\/g) || []).length;\n        const dot = (raw.match(\/\\.\/g) || []).length;\n        if (comma && dot) {\n          const decimal = raw.lastIndexOf(\",\") > raw.lastIndexOf(\".\") ? \",\" : \".\";\n          const thousand = decimal === \",\" ? \".\" : \",\";\n          raw = raw.split(thousand).join(\"\").replace(decimal, \".\");\n        } else if (comma) {\n          raw = raw.replace(\/\\.\/g, \"\").replace(\",\", \".\");\n        } else if (dot > 1) {\n          raw = raw.replace(\/\\.\/g, \"\");\n        } else if (dot === 1) {\n          const parts = raw.split(\".\");\n          raw = parts[1] && parts[1].length === 3 && parts[0].length <= 3 ? raw.replace(\".\", \"\") : raw;\n        }\n        const parsed = Number(raw);\n        return { value: Number.isFinite(parsed) ? Math.max(0, parsed) : 0, negative, invalid: !Number.isFinite(parsed) };\n      };\n      const clamp = (value, min, max) => Math.min(max, Math.max(min, value));\n      const fmtPct = value => `${percent.format(value * 100)}%`;\n\n      \/\/ Calculo principal de bases, cotizaciones, IRPF manual y coste empresa.\n      const solidarity = (monthlyGross, rates) => {\n        const base = DATA_2026.baseMaximaMensual;\n        const limit10 = base * 1.10;\n        const limit50 = base * 1.50;\n        if (monthlyGross <= base) return 0;\n        const tramo1 = Math.max(0, Math.min(monthlyGross, limit10) - base);\n        const tramo2 = Math.max(0, Math.min(monthlyGross, limit50) - limit10);\n        const tramo3 = Math.max(0, monthlyGross - limit50);\n        return (tramo1 * rates[0] + tramo2 * rates[1] + tramo3 * rates[2]) * 12;\n      };\n      const calculate = () => {\n        const salarioRaw = parseLocale(els.salario);\n        const jornadaRaw = parseLocale(els.jornada);\n        const horasRaw = parseLocale(els.horasMes);\n        const diasRaw = parseLocale(els.diasContrato);\n        const irpfRaw = parseLocale(els.irpf);\n        const atepRaw = parseLocale(els.atepManual);\n        const otrosRaw = parseLocale(els.otrosCostes);\n        const brutoAnual = Math.min(salarioRaw.value, 1000000);\n        const brutoMensual = brutoAnual \/ 12;\n        const jornadaInformada = String(els.jornada?.value || \"\").trim() !== \"\";\n        const jornada = jornadaInformada ? clamp(jornadaRaw.value, 1, 100) : 100;\n        const horasMes = Math.min(horasRaw.value, 400);\n        const irpfRate = clamp(irpfRaw.value, 0, 60) \/ 100;\n        const otrosMensuales = Math.min(otrosRaw.value, 100000);\n        const grupo = els.grupo.value || \"4\";\n        const contrato = selected(\"contrato\");\n        const temporalSubtipo = els.temporalSubtipo.value || \"duracion_determinada\";\n        const diasContrato = Math.min(diasRaw.value, 3650);\n        const pagas = Number(selected(\"pagas\")) || 12;\n        const atepMode = selected(\"atep\");\n        const atepRate = atepMode === \"manual\" ? (atepRaw.value > 0 ? clamp(atepRaw.value, 0, 10) \/ 100 : DATA_2026.atepOficina) : DATA_2026.atepOficina;\n        const baseMinima = DATA_2026.basesMinimas[grupo] || DATA_2026.basesMinimas[\"4\"];\n        const baseMinimaHora = DATA_2026.basesMinimasHora[grupo] || DATA_2026.basesMinimasHora[\"4\"];\n        const horasAplicadas = jornada < 100 ? (horasMes > 0 ? horasMes : 160 * jornada \/ 100) : 0;\n        const baseMinimaProrrateada = jornada < 100 ? baseMinimaHora * horasAplicadas : baseMinima;\n        const baseCotizacionMensual = brutoAnual > 0 ? Math.min(DATA_2026.baseMaximaMensual, Math.max(baseMinimaProrrateada, brutoMensual)) : 0;\n        const baseCotizacionAnual = baseCotizacionMensual * 12;\n        const temporalTipoGeneral = contrato === \"temporal\" && temporalSubtipo !== \"duracion_determinada\";\n        const desempleoEmpresa = contrato === \"temporal\" && !temporalTipoGeneral ? DATA_2026.empresa.desempleoTemporal : DATA_2026.empresa.desempleoIndefinido;\n        const desempleoTrabajador = contrato === \"temporal\" && !temporalTipoGeneral ? DATA_2026.trabajador.desempleoTemporal : DATA_2026.trabajador.desempleoIndefinido;\n        const tipoEmpresa = DATA_2026.empresa.comunes + desempleoEmpresa + DATA_2026.empresa.fogasa + DATA_2026.empresa.formacion + DATA_2026.empresa.mei + atepRate;\n        const tipoTrabajador = DATA_2026.trabajador.comunes + desempleoTrabajador + DATA_2026.trabajador.formacion + DATA_2026.trabajador.mei;\n        const solidaridadEmpresa = solidarity(brutoMensual, DATA_2026.solidaridadEmpresa);\n        const solidaridadTrabajador = solidarity(brutoMensual, DATA_2026.solidaridadTrabajador);\n        const recargoContratoCorto = brutoAnual > 0 && contrato === \"temporal\" && temporalSubtipo === \"duracion_determinada\" && diasContrato > 0 && diasContrato < 30 ? DATA_2026.recargoContratoCorto : 0;\n        const ssEmpresa = brutoAnual > 0 ? baseCotizacionAnual * tipoEmpresa + solidaridadEmpresa + recargoContratoCorto : 0;\n        const ssTrabajador = brutoAnual > 0 ? baseCotizacionAnual * tipoTrabajador + solidaridadTrabajador : 0;\n        const irpf = brutoAnual * irpfRate;\n        const netoAnual = Math.max(0, brutoAnual - ssTrabajador - irpf);\n        const otrosAnual = otrosMensuales * 12;\n        const costeEmpresaAnual = brutoAnual + ssEmpresa + otrosAnual;\n        return {\n          brutoAnual,\n          brutoMensual,\n          jornada,\n          horasMes,\n          horasAplicadas,\n          temporalSubtipo,\n          diasContrato,\n          recargoContratoCorto,\n          irpfRate,\n          pagas,\n          atepMode,\n          atepRate,\n          baseMinimaProrrateada,\n          baseCotizacionMensual,\n          ssEmpresa,\n          ssTrabajador,\n          solidaridadEmpresa,\n          solidaridadTrabajador,\n          tipoEmpresa,\n          irpf,\n          netoAnual,\n          netoPaga: pagas > 0 ? netoAnual \/ pagas : 0,\n          costeEmpresaAnual,\n          costeEmpresaMensual: costeEmpresaAnual \/ 12,\n          otrosAnual,\n          costePorEuroNeto: netoAnual > 0 ? costeEmpresaAnual \/ netoAnual : null,\n          flags: {\n            negative: [salarioRaw, jornadaRaw, horasRaw, diasRaw, irpfRaw, atepRaw, otrosRaw].some(item => item.negative),\n            jornadaCero: jornadaInformada && jornadaRaw.value === 0,\n            jornadaClamped: jornadaRaw.value > 100 || (jornadaInformada && jornadaRaw.value < 1),\n            horasFallback: jornada < 100 && horasMes <= 0,\n            irpfClamped: irpfRaw.value > 60,\n            atepFallback: atepMode === \"manual\" && atepRaw.value <= 0,\n            atepClamped: atepMode === \"manual\" && atepRaw.value > 10,\n            salaryCapped: salarioRaw.value > 1000000,\n            otherCapped: otrosRaw.value > 100000,\n            minBaseApplied: brutoAnual > 0 && brutoMensual < baseMinimaProrrateada,\n            maxBaseApplied: brutoMensual > DATA_2026.baseMaximaMensual,\n            solidarityApplied: brutoMensual > DATA_2026.baseMaximaMensual,\n            invalid: [salarioRaw, jornadaRaw, horasRaw, diasRaw, irpfRaw, atepRaw, otrosRaw].some(item => item.invalid)\n          }\n        };\n      };\n\n      \/\/ Casos limite y avisos visibles para el usuario.\n      const buildAlerts = result => {\n        const alerts = [];\n        if (result.flags.invalid) alerts.push({ type: \"danger\", text: \"Alg\u00fan valor no se pudo interpretar y se ha tratado como 0.\" });\n        if (result.flags.negative) alerts.push({ type: \"danger\", text: \"Los importes negativos se han ajustado a 0 para evitar resultados no v\u00e1lidos.\" });\n        if (result.flags.jornadaCero) alerts.push({ type: \"danger\", text: \"Una jornada del 0% no es v\u00e1lida; se ha limitado al 1%.\" });\n        if (result.flags.jornadaClamped) alerts.push({ type: \"warning\", text: \"La jornada se ha limitado al rango 1%-100%.\" });\n        if (result.flags.horasFallback) alerts.push({ type: \"warning\", text: \"Faltan horas mensuales para la jornada parcial; se usa una aproximaci\u00f3n proporcional sobre 160 horas.\" });\n        if (result.recargoContratoCorto > 0) alerts.push({ type: \"warning\", text: \"Se a\u00f1aden 33,62 \u20ac de cotizaci\u00f3n empresarial por finalizar un contrato de duraci\u00f3n determinada inferior a 30 d\u00edas.\" });\n        if (selected(\"contrato\") === \"temporal\" && result.temporalSubtipo !== \"duracion_determinada\") alerts.push({ type: \"warning\", text: \"Este subtipo usa desempleo de tipo general y no aplica recargo corto; revisa las cuotas espec\u00edficas si es un contrato formativo.\" });\n        if (result.flags.irpfClamped) alerts.push({ type: \"warning\", text: \"La retenci\u00f3n IRPF se ha limitado al 60%.\" });\n        if (result.flags.atepFallback) alerts.push({ type: \"warning\", text: \"El tipo AT\/EP manual est\u00e1 vac\u00edo o es 0; se usa 1,50%.\" });\n        if (result.flags.atepClamped) alerts.push({ type: \"warning\", text: \"El tipo AT\/EP manual se ha limitado al 10%.\" });\n        if (result.flags.salaryCapped || result.flags.otherCapped) alerts.push({ type: \"warning\", text: \"Alg\u00fan importe supera el rango previsto y se ha limitado para mantener el c\u00e1lculo estable.\" });\n        if (result.flags.minBaseApplied) alerts.push({ type: \"warning\", text: \"El salario mensual queda por debajo de la base m\u00ednima prorrateada; se aplica la base m\u00ednima.\" });\n        if (result.flags.maxBaseApplied) alerts.push({ type: \"warning\", text: \"La cotizaci\u00f3n ordinaria se ha limitado a la base m\u00e1xima mensual de 2026.\" });\n        if (result.flags.solidarityApplied) alerts.push({ type: \"warning\", text: \"El salario supera la base m\u00e1xima y se a\u00f1ade cuota de solidaridad.\" });\n        if (result.atepMode === \"manual\") alerts.push({ type: \"warning\", text: \"El tipo AT\/EP depende del CNAE u ocupaci\u00f3n. Revisa el porcentaje antes de usar el resultado.\" });\n        return alerts;\n      };\n\n      \/\/ Datos exclusivos de esta calculadora enviados a las propiedades propias de HubSpot.\n      const getHubspotHiddenValues = () => {\n        const result = calculate();\n        const contrato = selected(\"contrato\") === \"temporal\" ? `Temporal (${result.temporalSubtipo}, ${percent.format(result.diasContrato)} d\u00edas)` : \"Indefinido o tipo general\";\n        const atep = result.atepMode === \"manual\" ? `${percent.format(result.atepRate * 100)}% manual` : \"1,50% oficina\";\n        const resumen = [\n          `Contrato: ${contrato}`,\n          `grupo de cotizaci\u00f3n: ${els.grupo.value || \"4\"}`,\n          `jornada: ${percent.format(result.jornada)}%`,\n          `horas\/mes: ${percent.format(result.horasAplicadas || result.horasMes)}`,\n          `pagas: ${result.pagas}`,\n          `IRPF manual: ${percent.format(result.irpfRate * 100)}%`,\n          `AT\/EP: ${atep}`,\n          `salario bruto anual: ${money.format(result.brutoAnual)}`,\n          `coste empresa mensual: ${money.format(result.costeEmpresaMensual)}`,\n          `coste empresa anual: ${money.format(result.costeEmpresaAnual)}`,\n          `recargo contrato corto: ${money.format(result.recargoContratoCorto)}`,\n          `neto por paga: ${money.format(result.netoPaga)}`\n        ].join(\"; \");\n        return {\n          [HUBSPOT_FIELDS.figura]: selected(\"nominasFigura\"),\n          [HUBSPOT_FIELDS.empleados]: selected(\"nominasEmpleados\"),\n          [HUBSPOT_FIELDS.horizonte]: selected(\"nominasHorizonte\"),\n          [HUBSPOT_FIELDS.salario]: result.brutoAnual.toFixed(2),\n          [HUBSPOT_FIELDS.costeMensual]: result.costeEmpresaMensual.toFixed(2),\n          [HUBSPOT_FIELDS.resumen]: resumen\n        };\n      };\n      const normalizeHubspotName = name => String(name || \"\").split(\"\/\").pop();\n      const hubspotInputNames = fieldName => [`0-1\/${fieldName}`, fieldName];\n      const getFormElement = form => (form?.nodeType === 1 ? form : null) || form?.[0] || (typeof form?.get === \"function\" ? form.get(0) : null);\n      const setHubspotFieldValue = (form, fieldName, value) => {\n        const formEl = getFormElement(form);\n        if (!formEl) return false;\n        const names = hubspotInputNames(fieldName);\n        let fields = [];\n        if (typeof form?.find === \"function\") {\n          names.forEach(name => fields.push(...Array.from(form.find(`[name=\"${name}\"]`))));\n        } else {\n          names.forEach(name => fields.push(...Array.from(formEl.querySelectorAll(`[name=\"${name}\"]`))));\n        }\n        if (!fields.length) {\n          const hidden = (formEl.ownerDocument || document).createElement(\"input\");\n          hidden.type = \"hidden\";\n          hidden.name = `0-1\/${fieldName}`;\n          formEl.appendChild(hidden);\n          fields = [hidden];\n        }\n        fields.forEach(input => {\n          input.value = value == null ? \"\" : String(value);\n          input.dispatchEvent(new Event(\"input\", { bubbles: true }));\n          input.dispatchEvent(new Event(\"change\", { bubbles: true }));\n        });\n        return true;\n      };\n      const syncHubspotHiddenFields = form => {\n        const values = getHubspotHiddenValues();\n        syncingHubspotHiddenFields = true;\n        try {\n          Object.keys(values).forEach(fieldName => setHubspotFieldValue(form, fieldName, values[fieldName]));\n        } finally {\n          syncingHubspotHiddenFields = false;\n        }\n      };\n      const syncHubspotSubmissionValues = submissionValues => {\n        if (!submissionValues || typeof submissionValues.push !== \"function\") return;\n        const values = getHubspotHiddenValues();\n        const names = Object.keys(values);\n        for (let i = submissionValues.length - 1; i >= 0; i -= 1) {\n          if (submissionValues[i] && names.includes(normalizeHubspotName(submissionValues[i].name))) submissionValues.splice(i, 1);\n        }\n        names.forEach(fieldName => submissionValues.push({ name: `0-1\/${fieldName}`, value: values[fieldName] }));\n      };\n      const updateHubspotQueryParams = () => {\n        if (!window.history?.replaceState || !window.location) return;\n        try {\n          const url = new URL(window.location.href);\n          const values = getHubspotHiddenValues();\n          Object.keys(values).forEach(fieldName => url.searchParams.set(fieldName, values[fieldName]));\n          window.history.replaceState(window.history.state, \"\", url.toString());\n        } catch (err) {}\n      };\n\n      \/\/ Pintado de outputs en tiempo real.\n      const render = () => {\n        const result = calculate();\n        const alerts = buildAlerts(result);\n        const manualVisible = selected(\"atep\") === \"manual\";\n        els.atepManualWrap.classList.toggle(\"is-visible\", manualVisible);\n        const temporalVisible = selected(\"contrato\") === \"temporal\";\n        els.temporalSubtipo.closest(\".mtx-field\").hidden = !temporalVisible;\n        els.diasContrato.closest(\".mtx-field\").hidden = !temporalVisible;\n        let status = \"warning\";\n        let kicker = \"Sin salario\";\n        let title = \"Introduce salario bruto anual para calcular el coste laboral.\";\n        let copy = \"La herramienta estima Seguridad Social de empresa, Seguridad Social del trabajador, IRPF manual y coste total.\";\n        if (result.brutoAnual > 0) {\n          status = result.costePorEuroNeto && result.costePorEuroNeto <= 1.55 ? \"good\" : \"warning\";\n          kicker = \"Coste laboral estimado\";\n          title = `${money.format(result.costeEmpresaMensual)} de coste empresa mensual.`;\n          copy = `Con ${selected(\"pagas\")} pagas, el neto orientativo por paga es ${money.format(result.netoPaga)}.`;\n        }\n        els.verdictBox.className = `mtx-result-main is-${status}`;\n        els.verdictKicker.textContent = kicker;\n        els.verdictTitle.textContent = title;\n        els.verdictCopy.textContent = copy;\n        els.costeMensual.textContent = money.format(result.costeEmpresaMensual);\n        els.costeAnual.textContent = money.format(result.costeEmpresaAnual);\n        els.netoPaga.textContent = money.format(result.netoPaga);\n        els.netoAnual.textContent = money.format(result.netoAnual);\n        els.ssEmpresa.textContent = money.format(result.ssEmpresa);\n        els.costeEuro.textContent = result.costePorEuroNeto === null ? \"No calculable\" : `${percent.format(result.costePorEuroNeto)} \u20ac`;\n        els.brutoAnual.textContent = money.format(result.brutoAnual);\n        els.baseMensual.textContent = money.format(result.baseCotizacionMensual);\n        els.ssTrabajador.textContent = money.format(result.ssTrabajador);\n        els.irpfAplicado.textContent = `${money.format(result.irpf)} (${fmtPct(result.irpfRate)})`;\n        els.tipoEmpresa.textContent = fmtPct(result.tipoEmpresa);\n        els.otrosAnual.textContent = money.format(result.otrosAnual);\n        els.solidaridad.textContent = money.format(result.solidaridadEmpresa + result.solidaridadTrabajador);\n        els.alerts.innerHTML = alerts.map(alert => `<div class=\"mtx-alert is-${alert.type}\">${alert.text}<\/div>`).join(\"\");\n        if (current === FORM_STEP && hubspotFormRef && !hubspotSubmitted) syncHubspotHiddenFields(hubspotFormRef);\n      };\n\n      \/\/ Carga, sincronizaci\u00f3n y desbloqueo del formulario HubSpot.\n      const isHubspotStepActive = () => current === FORM_STEP && !hubspotSubmitted;\n      const setHubspotStatus = (text, visible = true) => {\n        els.hubspotStatus.textContent = text || \"\";\n        els.hubspotStatus.classList.toggle(\"is-visible\", visible && !!text);\n      };\n      const advanceAfterHubspotSubmit = () => {\n        if (hubspotSubmitted) return;\n        hubspotSubmitted = true;\n        hubspotSubmitFailed = false;\n        setHubspotStatus(\"Formulario recibido. Resultado desbloqueado.\");\n        go(RESULT_STEP);\n      };\n      const markHubspotSubmitStarted = () => {\n        if (!isHubspotStepActive()) return;\n        hubspotSubmitFailed = false;\n        setHubspotStatus(\"Enviando formulario...\");\n      };\n      const markHubspotSubmitFailed = () => {\n        if (!isHubspotStepActive()) return;\n        hubspotSubmitFailed = true;\n        setHubspotStatus(\"No se ha podido completar el env\u00edo. Revisa los campos obligatorios del formulario.\");\n      };\n      const loadHubspotScript = callback => {\n        if (window.hbspt?.forms) {\n          callback();\n          return;\n        }\n        if (hubspotScriptRequested) return;\n        hubspotScriptRequested = true;\n        const script = document.createElement(\"script\");\n        script.src = \"https:\/\/js.hsforms.net\/forms\/embed\/v2.js\";\n        script.charset = \"utf-8\";\n        script.onload = callback;\n        script.onerror = () => {\n          hubspotScriptRequested = false;\n          hubspotLoaded = false;\n          script.remove();\n          setHubspotStatus(\"No se ha podido cargar el formulario. Vuelve a este paso para reintentarlo.\");\n        };\n        document.head.appendChild(script);\n      };\n      const watchHubspotReady = (attempt = 0) => {\n        if (!isHubspotStepActive()) return;\n        if (els.hubspotForm.querySelector(\"iframe, form\")) {\n          setHubspotStatus(\"\", false);\n          return;\n        }\n        if (attempt < 40) window.setTimeout(() => watchHubspotReady(attempt + 1), 250);\n      };\n      const mountHubspotForm = () => {\n        if (!isHubspotStepActive() || hubspotLoaded || !window.hbspt?.forms) return;\n        updateHubspotQueryParams();\n        els.hubspotForm.innerHTML = \"\";\n        hubspotLoaded = true;\n        hubspotSubmitFailed = false;\n        setHubspotStatus(\"Cargando formulario...\");\n        window.hbspt.forms.create({\n          portalId: HUBSPOT_PORTAL_ID,\n          formId: HUBSPOT_FORM_ID,\n          region: HUBSPOT_REGION,\n          target: HUBSPOT_TARGET,\n          onFormReady: form => {\n            hubspotFormRef = form;\n            syncHubspotHiddenFields(form);\n            setHubspotStatus(\"\", false);\n          },\n          onBeforeFormSubmit: (form, submissionValues) => {\n            hubspotFormRef = form;\n            syncHubspotHiddenFields(form);\n            syncHubspotSubmissionValues(submissionValues);\n            markHubspotSubmitStarted();\n          },\n          onFormSubmit: (form, submissionValues) => {\n            hubspotFormRef = form;\n            syncHubspotHiddenFields(form);\n            syncHubspotSubmissionValues(submissionValues);\n            markHubspotSubmitStarted();\n          },\n          onFormSubmitted: advanceAfterHubspotSubmit\n        });\n        watchHubspotReady();\n      };\n      const ensureHubspotForm = () => {\n        if (hubspotSubmitted) return;\n        updateHubspotQueryParams();\n        setHubspotStatus(\"Cargando formulario...\");\n        loadHubspotScript(mountHubspotForm);\n      };\n      const resetHubspotForm = () => {\n        hubspotSubmitted = false;\n        hubspotLoaded = false;\n        hubspotSubmitFailed = false;\n        hubspotFormRef = null;\n        setHubspotStatus(\"\", false);\n        els.hubspotForm.innerHTML = \"\";\n      };\n\n      \/\/ Navegacion del stepper, bloqueo del lead magnet y botones literales.\n      const focusStep = () => {\n        const stepper = root.querySelector(\".mtx-stepper\");\n        if (!stepper || typeof stepper.scrollIntoView !== \"function\") return;\n        stepper.scrollIntoView({ block: \"start\", behavior: window.matchMedia && window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches ? \"auto\" : \"smooth\" });\n      };\n      const resolveStep = n => {\n        if (n >= RESULT_STEP && !hubspotSubmitted) return FORM_STEP;\n        if (n === FORM_STEP && hubspotSubmitted) return RESULT_STEP;\n        return Math.min(max, Math.max(1, n));\n      };\n      const qualificationComplete = () => [\"nominasFigura\", \"nominasEmpleados\", \"nominasHorizonte\"].every(name => !!selected(name));\n      const previousStep = () => current === RESULT_STEP && hubspotSubmitted ? QUALIFICATION_STEP : current - 1;\n      const nextStep = () => current + 1;\n      const paint = () => {\n        steps.forEach(step => {\n          const active = Number(step.dataset.step) === current;\n          step.classList.toggle(\"is-active\", active);\n          step.setAttribute(\"aria-hidden\", active ? \"false\" : \"true\");\n        });\n        dots.forEach(dot => {\n          const n = Number(dot.dataset.stepTarget);\n          const locked = (n === RESULT_STEP && !hubspotSubmitted) || (n === FORM_STEP && hubspotSubmitted);\n          dot.classList.toggle(\"is-active\", n === current);\n          dot.classList.toggle(\"is-complete\", n < current || (n === FORM_STEP && hubspotSubmitted));\n          dot.classList.toggle(\"is-locked\", locked);\n          dot.disabled = locked;\n          dot.setAttribute(\"aria-disabled\", locked ? \"true\" : \"false\");\n          dot.toggleAttribute(\"aria-current\", n === current);\n          dot.setAttribute(\"aria-selected\", n === current ? \"true\" : \"false\");\n        });\n        back.hidden = current === 1;\n        next.hidden = current === max || (current === FORM_STEP && !hubspotSubmitted);\n        next.disabled = current === QUALIFICATION_STEP && !qualificationComplete();\n        reset.hidden = current !== RESULT_STEP;\n      };\n      const go = n => {\n        current = resolveStep(n);\n        paint();\n        render();\n        if (current === FORM_STEP) ensureHubspotForm();\n        focusStep();\n      };\n      const resetAll = () => {\n        root.querySelectorAll(\".mtx-card input\").forEach(input => { input.checked = input.defaultChecked; });\n        root.querySelectorAll(\".mtx-input\").forEach(input => { input.value = input.defaultValue; });\n        root.querySelectorAll(\".mtx-select\").forEach(select => { select.selectedIndex = [...select.options].findIndex(option => option.defaultSelected); });\n        resetHubspotForm();\n        go(1);\n      };\n      const handleCalculatorInput = event => {\n        if (syncingHubspotHiddenFields || els.hubspotForm.contains(event.target)) return;\n        render();\n        paint();\n        updateHubspotQueryParams();\n        if (hubspotLoaded && !hubspotSubmitted && current !== FORM_STEP) {\n          hubspotLoaded = false;\n          hubspotFormRef = null;\n          els.hubspotForm.innerHTML = \"\";\n        }\n      };\n      back.addEventListener(\"click\", () => go(previousStep()));\n      next.addEventListener(\"click\", () => go(nextStep()));\n      reset.addEventListener(\"click\", resetAll);\n      dots.forEach(dot => dot.addEventListener(\"click\", () => go(Number(dot.dataset.stepTarget))));\n      formRoot.addEventListener(\"input\", handleCalculatorInput);\n      formRoot.addEventListener(\"change\", handleCalculatorInput);\n      window.addEventListener(\"message\", event => {\n        let data = event.data;\n        if (typeof data === \"string\") {\n          try { data = JSON.parse(data); } catch (err) {}\n        }\n        if (!data || data.type !== \"hsFormCallback\") return;\n        const messageFormId = data.id || data.formId || data.data?.formId;\n        if (messageFormId !== HUBSPOT_FORM_ID || !isHubspotStepActive()) return;\n        if (data.eventName === \"onBeforeFormSubmit\" || data.eventName === \"onFormSubmit\") markHubspotSubmitStarted();\n        if (data.eventName === \"onFormSubmissionFailed\") markHubspotSubmitFailed();\n        if (data.eventName === \"onFormSubmitted\") advanceAfterHubspotSubmit();\n      });\n      window.addEventListener(\"hs-form-event:on-submission:success\", event => {\n        if (event?.detail?.formId === HUBSPOT_FORM_ID && isHubspotStepActive()) advanceAfterHubspotSubmit();\n      });\n      window.addEventListener(\"hs-form-event:on-submission:failed\", event => {\n        if (event?.detail?.formId === HUBSPOT_FORM_ID && isHubspotStepActive()) markHubspotSubmitFailed();\n      });\n      render();\n      paint();\n    })();\n  <\/script>\n<\/section>\n<style data-mt-hubspot-standard=\"v26.1\">:where(.hs-form-frame,[id*=\"hs-form\"],[id*=\"hubspot-form\"]){--hsf-button__background-color:#031549;--hsf-button__color:#fff;--hsf-button__border-radius:25px}<\/style>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ce7d227 elementor-widget elementor-widget-text-editor\" data-id=\"ce7d227\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h2>C\u00f3mo funciona la calculadora de n\u00f3minas<\/h2>\n<p>Esta calculadora de n\u00f3minas te gu\u00eda en cinco pasos sencillos, sin que necesites conocimientos previos de cotizaci\u00f3n:<\/p>\n<ul>\n<li><strong>Contrato y cotizaci\u00f3n.<\/strong> Eliges el tipo de contrato, el grupo de cotizaci\u00f3n y el porcentaje de jornada, para fijar la base de cotizaci\u00f3n aplicable.<\/li>\n<li><b>Salario y pagas.<\/b> Introduces el salario bruto anual, la retenci\u00f3n de IRPF que quieras estimar y si se reparte en 12 o 14 pagas.<\/li>\n<li><b>Costes de empresa.<\/b> Seleccionas el tipo de accidentes de trabajo \u20141,50 % en trabajos de oficina, o un porcentaje manual seg\u00fan tu actividad\u2014 y, si quieres, a\u00f1ades otros costes internos como equipo o formaci\u00f3n.<\/li>\n<li><b>Tu situaci\u00f3n de contrataci\u00f3n.<\/b> Indicas tu figura fiscal, tu plantilla actual y el horizonte de contrataci\u00f3n, para contextualizar el resultado.<\/li>\n<li><b>Recibe el desglose.<\/b> Con tu email desbloqueas el coste empresa, el neto orientativo y el desglose completo de cotizaciones.<\/li>\n<\/ul>\n<p>La retenci\u00f3n de IRPF se introduce de forma manual porque depende de tu situaci\u00f3n personal. Si necesitas una estimaci\u00f3n autom\u00e1tica, usa la <a href=\"https:\/\/muaytax.com\/es\/calculadoras\/calculadora-sueldo-neto-autonomo\/\">calculadora de sueldo neto para asalariados<\/a>.<\/p>\n<h2>Qu\u00e9 costes laborales hay en una n\u00f3mina en 2026<\/h2>\n<p>Los <strong>costes laborales<\/strong> de una empresa no se limitan al salario. Con contrato indefinido y actividad de oficina, las cotizaciones empresariales suman alrededor de un 32,15 % de la base de cotizaci\u00f3n:<\/p>\n<figure class=\"wp-block-table\" style=\"width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; margin:0;\">\n<table class=\"has-fixed-layout\" style=\"min-width:720px; width:100%; border-collapse:separate; border-spacing:0; border:1px solid #00ad65; border-radius:10px; overflow:hidden;\">\n<thead>\n<tr>\n<th style=\"background-color:#00ad65; color:#ffffff; border:1px solid #00ad65; padding:10px; white-space:nowrap; text-align:left;\">\n          <strong>Concepto<\/strong>\n        <\/th>\n<th style=\"background-color:#00ad65; color:#ffffff; border:1px solid #00ad65; padding:10px; white-space:nowrap; text-align:left;\">\n          <strong>Tipo empresa<\/strong>\n        <\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"border:1px solid #00ad65; padding:10px; white-space:nowrap;\">Contingencias comunes<\/td>\n<td style=\"border:1px solid #00ad65; padding:10px; white-space:nowrap;\">23,60 %<\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #00ad65; padding:10px; white-space:nowrap;\">Desempleo<\/td>\n<td style=\"border:1px solid #00ad65; padding:10px; white-space:nowrap;\">5,50 % indefinido \/ 6,70 % temporal<\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #00ad65; padding:10px; white-space:nowrap;\">FOGASA<\/td>\n<td style=\"border:1px solid #00ad65; padding:10px; white-space:nowrap;\">0,20 %<\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #00ad65; padding:10px; white-space:nowrap;\">Formaci\u00f3n profesional<\/td>\n<td style=\"border:1px solid #00ad65; padding:10px; white-space:nowrap;\">0,60 %<\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #00ad65; padding:10px; white-space:nowrap;\">MEI<\/td>\n<td style=\"border:1px solid #00ad65; padding:10px; white-space:nowrap;\">0,75 %<\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #00ad65; padding:10px; white-space:nowrap;\">AT\/EP<\/td>\n<td style=\"border:1px solid #00ad65; padding:10px; white-space:nowrap;\">1,50 % en oficina, seg\u00fan CNAE<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<p>El trabajador aporta un 6,50 % adicional \u2014contingencias comunes, desempleo, formaci\u00f3n profesional y MEI\u2014 m\u00e1s la retenci\u00f3n de IRPF. Por encima de la base m\u00e1xima de cotizaci\u00f3n, 5.101,20 \u20ac mensuales en 2026, se aplica adem\u00e1s una cotizaci\u00f3n adicional de solidaridad con tipos progresivos seg\u00fan el tramo de retribuci\u00f3n.<\/p>\n<h2>Ejemplo de c\u00e1lculo de n\u00f3mina y costes laborales<\/h2>\n<p>A diferencia de otras calculadoras de n\u00f3minas, aqu\u00ed puedes ver el ejemplo completo con ambos lados del c\u00e1lculo. Con un <strong>salario bruto de 24.000 \u20ac anuales<\/strong>,<b> contrato indefinido, jornada completa y actividad de oficina<\/b>:<\/p>\n<ul>\n<li><strong>Base de cotizaci\u00f3n mensual:<\/strong> 2.000 \u20ac<\/li>\n<li><strong>Costes laborales de la empresa:<\/strong> 643 \u20ac al mes (32,15 %)<\/li>\n<li><strong>Coste laboral total:<\/strong> 2.643 \u20ac al mes \u00b7 31.716 \u20ac al a\u00f1o<\/li>\n<li><strong>Cotizaci\u00f3n del trabajador:<\/strong> 130 \u20ac al mes<\/li>\n<li><strong>Con una retenci\u00f3n de IRPF del 12 %:<\/strong> neto de 1.630 \u20ac al mes \u00b7 19.560 \u20ac al a\u00f1o<\/li>\n<\/ul>\n<p>Por cada euro que llega al trabajador, la empresa desembolsa unos 1,62 \u20ac. Esa diferencia son los costes laborales que no aparecen en el bruto pactado, y conviene tenerla clara antes de contratar o de negociar una subida.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bc7327a elementor-widget elementor-widget-heading\" data-id=\"bc7327a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Preguntas frecuentes sobre calcular la n\u00f3mina<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-334b386 elementor-widget elementor-widget-accordion\" data-id=\"334b386\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"accordion.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-accordion\">\n\t\t\t\t\t\t\t<div class=\"elementor-accordion-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-5371\" class=\"elementor-tab-title\" data-tab=\"1\" role=\"button\" aria-controls=\"elementor-tab-content-5371\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon elementor-accordion-icon-right\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon-closed\"><i class=\"icon icon-down-arrow1\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon-opened\"><i class=\"icon icon-up-arrow1\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-accordion-title\" tabindex=\"0\">\u00bfQu\u00e9 son los costes laborales de una n\u00f3mina?<\/a>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div id=\"elementor-tab-content-5371\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"1\" role=\"region\" aria-labelledby=\"elementor-tab-title-5371\"><p>Es el total que paga la empresa: el salario bruto m\u00e1s las cotizaciones a la Seguridad Social \u2014contingencias comunes, desempleo, FOGASA, formaci\u00f3n profesional, MEI y AT\/EP\u2014. En 2026 suponen alrededor de un 32 % adicional sobre el bruto.<\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-accordion-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-5372\" class=\"elementor-tab-title\" data-tab=\"2\" role=\"button\" aria-controls=\"elementor-tab-content-5372\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon elementor-accordion-icon-right\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon-closed\"><i class=\"icon icon-down-arrow1\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon-opened\"><i class=\"icon icon-up-arrow1\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-accordion-title\" tabindex=\"0\">\u00bfCu\u00e1nto cuesta a la empresa un trabajador de 24.000 \u20ac brutos?<\/a>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div id=\"elementor-tab-content-5372\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"2\" role=\"region\" aria-labelledby=\"elementor-tab-title-5372\"><p>Unos 31.716 \u20ac al a\u00f1o con contrato indefinido y actividad de oficina: el salario m\u00e1s 7.716 \u20ac de cotizaciones empresariales.<\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-accordion-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-5373\" class=\"elementor-tab-title\" data-tab=\"3\" role=\"button\" aria-controls=\"elementor-tab-content-5373\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon elementor-accordion-icon-right\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon-closed\"><i class=\"icon icon-down-arrow1\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon-opened\"><i class=\"icon icon-up-arrow1\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-accordion-title\" tabindex=\"0\">\u00bfPor qu\u00e9 el IRPF se introduce manualmente?<\/a>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div id=\"elementor-tab-content-5373\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"3\" role=\"region\" aria-labelledby=\"elementor-tab-title-5373\"><p>Porque depende de datos personales y familiares que la empresa recoge en el modelo 145. Para una estimaci\u00f3n autom\u00e1tica, usa la calculadora de sueldo neto para asalariados.<\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-accordion-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-5374\" class=\"elementor-tab-title\" data-tab=\"4\" role=\"button\" aria-controls=\"elementor-tab-content-5374\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon elementor-accordion-icon-right\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon-closed\"><i class=\"icon icon-down-arrow1\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon-opened\"><i class=\"icon icon-up-arrow1\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-accordion-title\" tabindex=\"0\">\u00bfUn contrato temporal tiene m\u00e1s costes laborales?<\/a>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div id=\"elementor-tab-content-5374\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"4\" role=\"region\" aria-labelledby=\"elementor-tab-title-5374\"><p>S\u00ed. La cotizaci\u00f3n por desempleo sube del 5,50 % al 6,70 % a cargo de la empresa.<\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-accordion-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-5375\" class=\"elementor-tab-title\" data-tab=\"5\" role=\"button\" aria-controls=\"elementor-tab-content-5375\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon elementor-accordion-icon-right\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon-closed\"><i class=\"icon icon-down-arrow1\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon-opened\"><i class=\"icon icon-up-arrow1\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-accordion-title\" tabindex=\"0\">\u00bfPuedo darme de baja en el RETA sin cerrar la sociedad?<\/a>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div id=\"elementor-tab-content-5375\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"5\" role=\"region\" aria-labelledby=\"elementor-tab-title-5375\"><p>Es posible, pero solo si desaparecen las circunstancias que motivaron el alta. Dejar de ejercer funciones de direcci\u00f3n y gerencia, cesar en la prestaci\u00f3n de servicios o reducir la participaci\u00f3n por debajo de los umbrales.<\/p><p>Mantener la baja mientras se sigue dirigiendo la sociedad expone a un alta de oficio con efectos retroactivos y recargo sobre las cuotas no ingresadas. La sociedad puede permanecer activa con otro administrador o con socios que s\u00ed cumplan el encuadramiento.<\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<script type=\"application\/ld+json\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"\\u00bfQu\\u00e9 son los costes laborales de una n\\u00f3mina?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"<p>Es el total que paga la empresa: el salario bruto m\\u00e1s las cotizaciones a la Seguridad Social \\u2014contingencias comunes, desempleo, FOGASA, formaci\\u00f3n profesional, MEI y AT\\\/EP\\u2014. En 2026 suponen alrededor de un 32 % adicional sobre el bruto.<\\\/p>\"}},{\"@type\":\"Question\",\"name\":\"\\u00bfCu\\u00e1nto cuesta a la empresa un trabajador de 24.000 \\u20ac brutos?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"<p>Unos 31.716 \\u20ac al a\\u00f1o con contrato indefinido y actividad de oficina: el salario m\\u00e1s 7.716 \\u20ac de cotizaciones empresariales.<\\\/p>\"}},{\"@type\":\"Question\",\"name\":\"\\u00bfPor qu\\u00e9 el IRPF se introduce manualmente?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"<p>Porque depende de datos personales y familiares que la empresa recoge en el modelo 145. Para una estimaci\\u00f3n autom\\u00e1tica, usa la calculadora de sueldo neto para asalariados.<\\\/p>\"}},{\"@type\":\"Question\",\"name\":\"\\u00bfUn contrato temporal tiene m\\u00e1s costes laborales?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"<p>S\\u00ed. La cotizaci\\u00f3n por desempleo sube del 5,50 % al 6,70 % a cargo de la empresa.<\\\/p>\"}},{\"@type\":\"Question\",\"name\":\"\\u00bfPuedo darme de baja en el RETA sin cerrar la sociedad?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"<p>Es posible, pero solo si desaparecen las circunstancias que motivaron el alta. Dejar de ejercer funciones de direcci\\u00f3n y gerencia, cesar en la prestaci\\u00f3n de servicios o reducir la participaci\\u00f3n por debajo de los umbrales.<\\\/p><p>Mantener la baja mientras se sigue dirigiendo la sociedad expone a un alta de oficio con efectos retroactivos y recargo sobre las cuotas no ingresadas. La sociedad puede permanecer activa con otro administrador o con socios que s\\u00ed cumplan el encuadramiento.<\\\/p>\"}}]}<\/script>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-800fefb e-flex e-con-boxed e-con e-parent\" data-id=\"800fefb\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-405cfc0 e-con-full e-flex e-con e-child\" data-id=\"405cfc0\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9bf89f8 elementor-widget elementor-widget-heading\" data-id=\"9bf89f8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Accede a otras calculadoras de Muay Tax<\/h2>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-618a2f4 e-con-full e-flex e-con e-child\" data-id=\"618a2f4\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-800fb80 e-con-full e-flex e-con e-child\" data-id=\"800fb80\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-76b0651 elementor-cta--layout-image-left elementor-cta--mobile-layout-image-above elementor-cta--skin-classic elementor-animated-content elementor-widget elementor-widget-call-to-action\" data-id=\"76b0651\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"call-to-action.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-cta\">\n\t\t\t\t\t<div class=\"elementor-cta__bg-wrapper\">\n\t\t\t\t<div class=\"elementor-cta__bg elementor-bg\" style=\"background-image: url(https:\/\/muaytax.com\/wp-content\/uploads\/2026\/08\/calculadora-sueldo-neto-asalariados.jpg);\" role=\"img\" aria-label=\"calculadora sueldo neto asalariados\"><\/div>\n\t\t\t\t<div class=\"elementor-cta__bg-overlay\"><\/div>\n\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-cta__content\">\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-cta__title elementor-cta__content-item elementor-content-item\">\n\t\t\t\t\t\tCalculadora de sueldo neto para asalariados\t\t\t\t\t<\/h3>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-cta__button-wrapper elementor-cta__content-item elementor-content-item \">\n\t\t\t\t\t<a class=\"elementor-cta__button elementor-button elementor-size-\" href=\"https:\/\/muaytax.com\/es\/calculadoras\/calculadora-sueldo-neto-asalariado\/\">\n\t\t\t\t\t\tIr a la calculadora\t\t\t\t\t<\/a>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f62024c e-con-full e-flex e-con e-child\" data-id=\"f62024c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ee9ca58 elementor-cta--layout-image-left elementor-cta--mobile-layout-image-above elementor-cta--skin-classic elementor-animated-content elementor-widget elementor-widget-call-to-action\" data-id=\"ee9ca58\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"call-to-action.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-cta\">\n\t\t\t\t\t<div class=\"elementor-cta__bg-wrapper\">\n\t\t\t\t<div class=\"elementor-cta__bg elementor-bg\" style=\"background-image: url(https:\/\/muaytax.com\/wp-content\/uploads\/2026\/08\/calculadora-Hipoteca.jpg);\" role=\"img\" aria-label=\"calculadora Hipoteca\"><\/div>\n\t\t\t\t<div class=\"elementor-cta__bg-overlay\"><\/div>\n\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-cta__content\">\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-cta__title elementor-cta__content-item elementor-content-item\">\n\t\t\t\t\t\tCalculadora de hipotecas\t\t\t\t\t<\/h3>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-cta__button-wrapper elementor-cta__content-item elementor-content-item \">\n\t\t\t\t\t<a class=\"elementor-cta__button elementor-button elementor-size-\" href=\"https:\/\/muaytax.com\/es\/calculadoras\/calculadora-itp-ajd\/\">\n\t\t\t\t\t\tIr a la calculadora\t\t\t\t\t<\/a>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Calculadora de n\u00f3minas y costes laborales Estima coste por persona y por equipo, cotizaciones 2026, presupuesto anual y sueldo neto [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"tramite":[],"class_list":["post-65765","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/muaytax.com\/es\/wp-json\/wp\/v2\/pages\/65765","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/muaytax.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/muaytax.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/muaytax.com\/es\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/muaytax.com\/es\/wp-json\/wp\/v2\/comments?post=65765"}],"version-history":[{"count":74,"href":"https:\/\/muaytax.com\/es\/wp-json\/wp\/v2\/pages\/65765\/revisions"}],"predecessor-version":[{"id":67125,"href":"https:\/\/muaytax.com\/es\/wp-json\/wp\/v2\/pages\/65765\/revisions\/67125"}],"wp:attachment":[{"href":"https:\/\/muaytax.com\/es\/wp-json\/wp\/v2\/media?parent=65765"}],"wp:term":[{"taxonomy":"tramite","embeddable":true,"href":"https:\/\/muaytax.com\/es\/wp-json\/wp\/v2\/tramite?post=65765"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}