{"id":63622,"date":"2026-05-26T09:21:29","date_gmt":"2026-05-26T07:21:29","guid":{"rendered":"https:\/\/muaytax.com\/?page_id=63622"},"modified":"2026-08-13T08:44:08","modified_gmt":"2026-08-13T06:44:08","slug":"herramienta-necesito-un-numero-iva","status":"publish","type":"page","link":"https:\/\/muaytax.com\/es\/calculadoras\/herramienta-necesito-un-numero-iva\/","title":{"rendered":"Herramienta necesito un n\u00famero IVA"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"63622\" class=\"elementor elementor-63622\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ecfa2b3 e-flex e-con-boxed e-con e-parent\" data-id=\"ecfa2b3\" 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-7767a69 elementor-widget elementor-widget-html\" data-id=\"7767a69\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- Muay Tax calculators v2: unified UI tokens and scoped cleanup. -->\n<meta charset=\"UTF-8\">\n<!-- Formulario registro IVA - bloque embebible estilo Muay Tax -->\n<div id=\"mt-vat-registration-form\" class=\"mtvat\" data-mtvat-widget data-muay-v2>\n  <style>\n    #mt-vat-registration-form,\n    #mt-vat-registration-form *,\n    #mt-vat-registration-form *::before,\n    #mt-vat-registration-form *::after {\n      box-sizing: border-box;\n    }\n\n    #mt-vat-registration-form {\n      --mtvat-green: #00ad65;\n      --mtvat-green-dark: #008f54;\n      --mtvat-green-soft: #e8fbf2;\n      --mtvat-navy: #031549;\n      --mtvat-ink: #0e1433;\n      --mtvat-muted: #5b6380;\n      --mtvat-line: #e5ecf7;\n      --mtvat-paper: #f7faff;\n      --mtvat-white: #ffffff;\n      --mtvat-blue: #0083e3;\n      --mtvat-blue-soft: #e9f5ff;\n      --mtvat-amber: #f2a12b;\n      --mtvat-amber-soft: #fff6e6;\n      --mtvat-danger: #e0364c;\n      --mtvat-danger-soft: #fff0f3;\n      --mtvat-radius: 12px;\n      --mtvat-radius-sm: 8px;\n      --mtvat-font: Poppins, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif;\n      width: 100%;\n      color: var(--mtvat-ink);\n      font-family: var(--mtvat-font);\n      font-size: 14px;\n      line-height: 1.5;\n      letter-spacing: 0;\n    }\n\n    #mt-vat-registration-form [hidden] {\n      display: none !important;\n    }\n\n    #mt-vat-registration-form button,\n    #mt-vat-registration-form input,\n    #mt-vat-registration-form select,\n    #mt-vat-registration-form textarea {\n      font: inherit;\n      letter-spacing: 0;\n    }\n\n    #mt-vat-registration-form button {\n      cursor: pointer;\n    }\n\n    #mt-vat-registration-form h2,\n    #mt-vat-registration-form h3,\n    #mt-vat-registration-form h4,\n    #mt-vat-registration-form p {\n      margin: 0;\n      color: inherit;\n      letter-spacing: 0;\n    }\n\n    #mt-vat-registration-form .mtvat-wrap {\n      width: 100%;\n      max-width: 980px;\n      margin: 0 auto;\n      padding: 32px 16px;\n    }\n\n    #mt-vat-registration-form .mtvat-heading {\n      max-width: 780px;\n      margin: 0 auto 24px;\n      text-align: center;\n    }\n\n    #mt-vat-registration-form .mtvat-kicker {\n      display: inline-flex;\n      align-items: center;\n      justify-content: center;\n      min-height: 28px;\n      margin-bottom: 12px;\n      padding: 6px 13px;\n      border-radius: 999px;\n      background: var(--mtvat-green-soft);\n      color: var(--mtvat-green-dark);\n      font-size: 12px;\n      font-weight: 800;\n      letter-spacing: 0;\n      text-transform: uppercase;\n    }\n\n    #mt-vat-registration-form .mtvat-kicker,\n    #mt-vat-registration-form .mtvat-badge-line { display: none !important; }\n\n    #mt-vat-registration-form .mtvat-title {\n      color: var(--mtvat-navy);\n      font-size: 34px;\n      font-weight: 800;\n      line-height: 1.12;\n      letter-spacing: 0;\n    }\n\n    #mt-vat-registration-form .mtvat-subtitle {\n      max-width: 720px;\n      margin: 12px auto 0;\n      color: var(--mtvat-muted);\n      font-size: 16px;\n      line-height: 1.6;\n    }\n\n    #mt-vat-registration-form .mtvat-card {\n      overflow: hidden;\n      border: 1px solid var(--mtvat-line);\n      border-radius: var(--mtvat-radius);\n      background: var(--mtvat-white);\n      box-shadow: 0 24px 52px -28px rgba(3, 21, 73, 0.32);\n    }\n\n    #mt-vat-registration-form .mtvat-top {\n      display: none;\n    }\n\n    #mt-vat-registration-form .mtvat-steps-nav {\n      display: flex;\n      gap: 5px;\n      margin-bottom: 24px;\n      padding: 6px;\n      overflow-x: auto;\n      overflow-y: hidden;\n      scrollbar-width: thin;\n      background: var(--mtvat-white);\n      border: 1px solid var(--mtvat-line);\n      border-radius: var(--mtvat-radius);\n    }\n\n    #mt-vat-registration-form .mtvat-step-tab {\n      all: unset;\n      box-sizing: border-box;\n      display: flex;\n      flex: 1 0 48px;\n      align-items: center;\n      justify-content: center;\n      min-width: 42px;\n      min-height: 44px;\n      padding: 9px 4px;\n      border-radius: 6px;\n      color: var(--mtvat-navy);\n      background: transparent;\n      cursor: pointer;\n      font-size: 0.87rem;\n      font-weight: 600;\n      line-height: 1.3;\n      text-align: center;\n      transition: background-color .2s, color .2s;\n    }\n\n    #mt-vat-registration-form .mtvat-step-tab:hover,\n    #mt-vat-registration-form .mtvat-step-tab.is-active {\n      background: var(--mtvat-green-soft);\n      color: var(--mtvat-green-dark);\n    }\n\n    #mt-vat-registration-form .mtvat-step-tab.is-done {\n      color: var(--mtvat-green-dark);\n    }\n\n    #mt-vat-registration-form .mtvat-step-tab.is-locked {\n      opacity: .55;\n      cursor: not-allowed;\n    }\n\n    #mt-vat-registration-form .mtvat-step-tab.is-locked:hover {\n      background: transparent;\n      color: var(--mtvat-navy);\n    }\n\n    #mt-vat-registration-form .mtvat-step-num {\n      display: inline-flex;\n      align-items: center;\n      justify-content: center;\n      width: 22px;\n      height: 22px;\n      flex: 0 0 22px;\n      border-radius: 50%;\n      background: var(--mtvat-line);\n      color: var(--mtvat-navy);\n      font-size: 0.84rem;\n      font-weight: 700;\n      line-height: 1;\n    }\n\n    #mt-vat-registration-form .mtvat-step-tab.is-active .mtvat-step-num,\n    #mt-vat-registration-form .mtvat-step-tab.is-done .mtvat-step-num {\n      background: var(--mtvat-green);\n      color: #fff;\n    }\n\n    #mt-vat-registration-form .mtvat-badge-line {\n      display: inline-flex;\n      align-items: center;\n      gap: 8px;\n      color: var(--mtvat-navy);\n      font-size: 12px;\n      font-weight: 800;\n      letter-spacing: 0;\n      text-transform: uppercase;\n      white-space: nowrap;\n    }\n\n    #mt-vat-registration-form .mtvat-badge-line span {\n      display: inline-flex;\n      align-items: center;\n      min-height: 24px;\n      padding: 4px 10px;\n      border-radius: 999px;\n      background: var(--mtvat-green-soft);\n      color: var(--mtvat-green-dark);\n    }\n\n    #mt-vat-registration-form .mtvat-progress-track {\n      width: 100%;\n      height: 8px;\n      overflow: hidden;\n      border-radius: 999px;\n      background: var(--mtvat-line);\n    }\n\n    #mt-vat-registration-form .mtvat-progress-bar {\n      width: 0;\n      height: 100%;\n      border-radius: 999px;\n      background: linear-gradient(90deg, var(--mtvat-green), #5ee3a4);\n      transition: width 220ms ease;\n    }\n\n    #mt-vat-registration-form .mtvat-progress-meta {\n      display: flex;\n      justify-content: flex-start;\n      gap: 12px;\n      margin-top: 7px;\n      color: var(--mtvat-muted);\n      font-size: 12px;\n      font-weight: 600;\n    }\n\n    #mt-vat-registration-form .mtvat-body {\n      min-height: 430px;\n      padding: 38px 46px 32px;\n    }\n\n    #mt-vat-registration-form .mtvat-step-label {\n      margin-bottom: 11px;\n      color: var(--mtvat-green-dark);\n      font-size: 12px;\n      font-weight: 800;\n      letter-spacing: 0;\n      text-transform: uppercase;\n    }\n\n    #mt-vat-registration-form .mtvat-question-title {\n      width: 100%;\n      color: var(--mtvat-navy);\n      font-size: 27px;\n      font-weight: 800;\n      line-height: 1.22;\n      letter-spacing: 0;\n    }\n\n    #mt-vat-registration-form .mtvat-help {\n      width: 100%;\n      margin-top: 10px;\n      margin-bottom: 24px;\n      color: var(--mtvat-muted);\n      font-size: 14px;\n      line-height: 1.6;\n    }\n\n    #mt-vat-registration-form .mtvat-multi-note {\n      display: inline-flex;\n      align-items: center;\n      gap: 8px;\n      min-height: 32px;\n      margin-bottom: 14px;\n      padding: 7px 12px;\n      border: 1px solid #bdebd5;\n      border-radius: 999px;\n      background: var(--mtvat-green-soft);\n      color: var(--mtvat-green-dark);\n      font-size: 12px;\n      font-weight: 800;\n    }\n\n    #mt-vat-registration-form .mtvat-options {\n      display: grid;\n      gap: 11px;\n    }\n\n    #mt-vat-registration-form .mtvat-options.is-grid {\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n    }\n\n    #mt-vat-registration-form .mtvat-option {\n      display: grid;\n      grid-template-columns: 24px 1fr;\n      gap: 12px;\n      align-items: center;\n      width: 100%;\n      min-height: 58px;\n      padding: 14px 16px;\n      border: 1.5px solid var(--mtvat-line);\n      border-radius: var(--mtvat-radius-sm);\n      background: var(--mtvat-white);\n      color: var(--mtvat-navy);\n      text-align: left;\n      transition: border-color 140ms ease, background 140ms ease, transform 80ms ease;\n    }\n\n    #mt-vat-registration-form .mtvat-option:hover {\n      border-color: #8de1b9;\n      background: #f3fdf8;\n    }\n\n    #mt-vat-registration-form .mtvat-option:active {\n      transform: scale(0.995);\n    }\n\n    #mt-vat-registration-form .mtvat-option.is-selected {\n      border-color: var(--mtvat-green);\n      background: var(--mtvat-green-soft);\n    }\n\n    #mt-vat-registration-form .mtvat-marker {\n      position: relative;\n      width: 22px;\n      height: 22px;\n      border: 2px solid #cfd7e7;\n      border-radius: 999px;\n      background: var(--mtvat-white);\n    }\n\n    #mt-vat-registration-form .mtvat-option.is-multi .mtvat-marker {\n      border-radius: 7px;\n    }\n\n    #mt-vat-registration-form .mtvat-option.is-selected .mtvat-marker {\n      border-color: var(--mtvat-green);\n      background: var(--mtvat-green);\n    }\n\n    #mt-vat-registration-form .mtvat-option.is-selected .mtvat-marker::after {\n      content: \"\";\n      position: absolute;\n      left: 6px;\n      top: 3px;\n      width: 6px;\n      height: 11px;\n      border: solid #fff;\n      border-width: 0 2px 2px 0;\n      transform: rotate(45deg);\n    }\n\n    #mt-vat-registration-form .mtvat-opt-text {\n      display: block;\n      min-width: 0;\n      line-height: 1.35;\n      overflow-wrap: anywhere;\n    }\n\n    #mt-vat-registration-form .mtvat-opt-title {\n      display: block;\n      color: var(--mtvat-navy);\n      font-size: 15px;\n      font-weight: 800;\n      line-height: 1.35;\n    }\n\n    #mt-vat-registration-form .mtvat-opt-detail {\n      display: block;\n      margin-top: 4px;\n      color: var(--mtvat-muted);\n      font-size: 12.5px;\n      font-weight: 600;\n      line-height: 1.45;\n    }\n\n    #mt-vat-registration-form .mtvat-foot {\n      display: flex;\n      justify-content: space-between;\n      gap: 14px;\n      align-items: center;\n      padding: 20px 28px;\n      border-top: 1px solid var(--mtvat-line);\n      background: var(--mtvat-paper);\n    }\n\n    #mt-vat-registration-form .mtvat-btn {\n      all: unset;\n      box-sizing: border-box;\n      display: inline-flex;\n      align-items: center;\n      justify-content: center;\n      min-height: 44px;\n      min-width: 124px;\n      padding: 11px 18px;\n      border-radius: var(--mtvat-radius-sm);\n      font-size: 14px;\n      font-weight: 800;\n      line-height: 1.2;\n      text-align: center;\n      transition: background 140ms ease, color 140ms ease, transform 120ms ease, opacity 140ms ease;\n    }\n\n    #mt-vat-registration-form .mtvat-btn-primary {\n      background: var(--mtvat-green);\n      color: var(--mtvat-white);\n      box-shadow: 0 14px 28px -18px rgba(0, 173, 101, 0.8);\n    }\n\n    #mt-vat-registration-form .mtvat-btn-primary:hover:not(:disabled) {\n      background: var(--mtvat-green-dark);\n      transform: translateY(-1px);\n    }\n\n    #mt-vat-registration-form .mtvat-btn-secondary {\n      border: 1px solid var(--mtvat-line);\n      background: var(--mtvat-white);\n      color: var(--mtvat-navy);\n    }\n\n    #mt-vat-registration-form .mtvat-btn-secondary:hover:not(:disabled) {\n      border-color: #b9c6dc;\n      background: #f9fbff;\n    }\n\n    #mt-vat-registration-form .mtvat-btn:disabled {\n      opacity: 0.45;\n      cursor: not-allowed;\n      transform: none;\n    }\n\n    #mt-vat-registration-form .mtvat-lead-intro {\n      margin-bottom: 22px;\n    }\n\n    #mt-vat-registration-form .mtvat-lead-box {\n      min-height: 180px;\n      padding: 22px;\n      border: 1px dashed #b8c4d8;\n      border-radius: var(--mtvat-radius);\n      background: var(--mtvat-paper);\n    }\n\n    #mt-vat-registration-form .mtvat-placeholder-title {\n      margin-bottom: 6px;\n      color: var(--mtvat-navy);\n      font-size: 18px;\n      font-weight: 800;\n      line-height: 1.3;\n    }\n\n    #mt-vat-registration-form .mtvat-placeholder-text {\n      max-width: 680px;\n      color: var(--mtvat-muted);\n      font-size: 14px;\n      line-height: 1.6;\n    }\n\n    #mt-vat-registration-form .hs-form-frame {\n      width: 100%;\n      min-height: 260px;\n      --hsf-global__font-family: var(--mtvat-font);\n      --hsf-global__color: var(--mtvat-navy);\n      --hsf-button__background-color: var(--mtvat-green);\n      --hsf-button__border-radius: var(--mtvat-radius-sm);\n      --hsf-field-input__border-radius: var(--mtvat-radius-sm);\n      --hsf-background__background-color: transparent;\n    }\n\n    #mt-vat-registration-form .mtvat-hs-status {\n      display: block;\n      margin-top: 12px;\n      color: var(--mtvat-muted);\n      font-size: 12px;\n      font-weight: 700;\n      line-height: 1.45;\n    }\n\n    #mt-vat-registration-form .mtvat-hs-status.is-error {\n      color: var(--mtvat-danger);\n    }\n\n    #mt-vat-registration-form .mtvat-result-hero {\n      padding: 34px 42px;\n      background: var(--mtvat-navy);\n      color: var(--mtvat-white);\n      border-bottom: 5px solid var(--mtvat-green);\n    }\n\n    #mt-vat-registration-form .mtvat-result-pill {\n      display: inline-flex;\n      align-items: center;\n      min-height: 28px;\n      margin-bottom: 13px;\n      padding: 6px 12px;\n      border-radius: 999px;\n      background: rgba(255, 255, 255, 0.12);\n      color: #9bf0c5;\n      font-size: 12px;\n      font-weight: 800;\n      letter-spacing: 0;\n      text-transform: uppercase;\n    }\n\n    #mt-vat-registration-form .mtvat-result-hero h3 {\n      max-width: 820px;\n      color: var(--mtvat-white) !important;\n      font-size: 30px;\n      font-weight: 800;\n      line-height: 1.18;\n      letter-spacing: 0;\n    }\n\n    #mt-vat-registration-form .mtvat-result-hero p {\n      max-width: 780px;\n      margin-top: 12px;\n      color: #d8e1f5 !important;\n      font-size: 15px;\n      line-height: 1.65;\n    }\n\n    #mt-vat-registration-form .mtvat-result-body {\n      padding: 30px 36px 34px;\n      background: var(--mtvat-paper);\n    }\n\n    #mt-vat-registration-form .mtvat-recommendation {\n      padding: 22px 24px;\n      border: 1px solid #bdebd5;\n      border-left: 6px solid var(--mtvat-green);\n      border-radius: var(--mtvat-radius);\n      background: var(--mtvat-white);\n      margin-bottom: 20px;\n    }\n\n    #mt-vat-registration-form .mtvat-recommendation h4 {\n      color: var(--mtvat-navy);\n      font-size: 18px;\n      font-weight: 800;\n      line-height: 1.3;\n    }\n\n    #mt-vat-registration-form .mtvat-result-actions {\n      display: grid;\n      gap: 12px;\n      margin: 16px 0 0;\n      padding: 0;\n      list-style: none;\n      counter-reset: mtvat-action;\n    }\n\n    #mt-vat-registration-form .mtvat-result-actions li {\n      position: relative;\n      min-height: 28px;\n      padding-left: 38px;\n      color: var(--mtvat-muted);\n      font-size: 14px;\n      font-weight: 600;\n      line-height: 1.55;\n    }\n\n    #mt-vat-registration-form .mtvat-result-actions li::before {\n      counter-increment: mtvat-action;\n      content: counter(mtvat-action);\n      position: absolute;\n      left: 0;\n      top: -1px;\n      display: inline-flex;\n      align-items: center;\n      justify-content: center;\n      width: 26px;\n      height: 26px;\n      border-radius: 50%;\n      background: var(--mtvat-green-soft);\n      color: var(--mtvat-green-dark);\n      font-size: 12px;\n      font-weight: 800;\n    }\n\n    #mt-vat-registration-form .mtvat-recap {\n      margin-bottom: 20px;\n      padding: 14px 16px;\n      border: 1px solid var(--mtvat-line);\n      border-radius: var(--mtvat-radius);\n      background: var(--mtvat-white);\n    }\n\n    #mt-vat-registration-form .mtvat-recap summary {\n      color: var(--mtvat-navy);\n      cursor: pointer;\n      font-size: 14px;\n      font-weight: 800;\n    }\n\n    #mt-vat-registration-form .mtvat-summary {\n      display: grid;\n      grid-template-columns: repeat(3, minmax(0, 1fr));\n      gap: 10px;\n      margin-top: 14px;\n    }\n\n    #mt-vat-registration-form .mtvat-summary-cell {\n      min-height: 78px;\n      padding: 14px;\n      border: 1px solid #bdebd5;\n      border-radius: var(--mtvat-radius-sm);\n      background: var(--mtvat-white);\n      box-shadow: 0 12px 24px -24px rgba(3, 21, 73, 0.45);\n    }\n\n    #mt-vat-registration-form .mtvat-summary-cell:nth-child(1),\n    #mt-vat-registration-form .mtvat-summary-cell:nth-child(4) {\n      border-color: #bdebd5;\n      background: var(--mtvat-green-soft);\n    }\n\n    #mt-vat-registration-form .mtvat-summary-cell:nth-child(2),\n    #mt-vat-registration-form .mtvat-summary-cell:nth-child(5) {\n      border-color: #b7dcff;\n      background: var(--mtvat-blue-soft);\n    }\n\n    #mt-vat-registration-form .mtvat-summary-cell:nth-child(3),\n    #mt-vat-registration-form .mtvat-summary-cell:nth-child(6) {\n      border-color: #f4d59a;\n      background: var(--mtvat-amber-soft);\n    }\n\n    #mt-vat-registration-form .mtvat-summary-label {\n      margin-bottom: 5px;\n      color: var(--mtvat-muted);\n      font-size: 11px;\n      font-weight: 800;\n      letter-spacing: 0;\n      text-transform: uppercase;\n    }\n\n    #mt-vat-registration-form .mtvat-summary-value {\n      color: var(--mtvat-navy);\n      font-size: 14px;\n      font-weight: 800;\n      line-height: 1.35;\n      overflow-wrap: anywhere;\n    }\n\n    #mt-vat-registration-form .mtvat-note-box {\n      padding: 14px 16px;\n      border: 1.5px solid #bdebd5;\n      border-left: 6px solid var(--mtvat-green);\n      border-radius: var(--mtvat-radius-sm);\n      background: var(--mtvat-white);\n      color: var(--mtvat-navy);\n      font-size: 13px;\n      font-weight: 600;\n      line-height: 1.55;\n    }\n\n    #mt-vat-registration-form .mtvat-actions {\n      display: flex;\n      gap: 12px;\n      justify-content: flex-start;\n      margin-top: 22px;\n    }\n\n    @media (max-width: 760px) {\n      #mt-vat-registration-form .mtvat-wrap {\n        padding: 24px 12px;\n      }\n\n      #mt-vat-registration-form .mtvat-title {\n        font-size: 28px;\n      }\n\n      #mt-vat-registration-form .mtvat-subtitle {\n        font-size: 15px;\n      }\n\n      #mt-vat-registration-form .mtvat-top {\n        grid-template-columns: 1fr;\n        gap: 12px;\n        padding: 18px;\n      }\n\n      #mt-vat-registration-form .mtvat-badge-line {\n        white-space: normal;\n      }\n\n      #mt-vat-registration-form .mtvat-body,\n      #mt-vat-registration-form .mtvat-result-body {\n        min-height: 0;\n        padding: 26px 18px 24px;\n      }\n\n      #mt-vat-registration-form .mtvat-question-title,\n      #mt-vat-registration-form .mtvat-result-hero h3 {\n        font-size: 23px;\n      }\n\n      #mt-vat-registration-form .mtvat-options.is-grid,\n      #mt-vat-registration-form .mtvat-summary {\n        grid-template-columns: 1fr;\n      }\n\n      #mt-vat-registration-form .mtvat-result-hero {\n        padding: 28px 20px;\n      }\n\n      #mt-vat-registration-form .mtvat-foot,\n      #mt-vat-registration-form .mtvat-actions {\n        flex-direction: column-reverse;\n        align-items: stretch;\n      }\n\n      #mt-vat-registration-form .mtvat-btn {\n        width: 100%;\n      }\n    }\n  <\/style>\n\n  <div class=\"mtvat-wrap\">\n    <div class=\"mtvat-heading\">\n      <div class=\"mtvat-kicker\">Diagn\u00f3stico gratuito de IVA<\/div>\n      <h1 class=\"mtvat-title\">\u00bfNecesitas un n\u00famero de IVA en la UE?<\/h1>\n      <p class=\"mtvat-subtitle\">Cu\u00e9ntanos qu\u00e9 vas a vender, a qui\u00e9n y d\u00f3nde estar\u00e1 el producto. Te indicaremos si aparece un IVA local, una ventanilla \u00fanica o una revisi\u00f3n antes de empezar.<\/p>\n    <\/div>\n\n    <div class=\"mtvat-steps-nav\" id=\"mtvat-steps-nav\" role=\"tablist\" aria-label=\"Preguntas y pasos del formulario registro IVA\"><\/div>\n\n    <div class=\"mtvat-card\" id=\"mtvat-quiz-card\">\n      <div class=\"mtvat-top\">\n        <div class=\"mtvat-badge-line\"><span>IVA UE<\/span> Registro<\/div>\n        <div>\n          <div class=\"mtvat-progress-track\"><div class=\"mtvat-progress-bar\" id=\"mtvat-progress-bar\"><\/div><\/div>\n          <div class=\"mtvat-progress-meta\">\n            <span id=\"mtvat-progress-left\">Paso 1<\/span>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"mtvat-body\" id=\"mtvat-question-body\" aria-live=\"polite\"><\/div>\n\n      <div class=\"mtvat-foot\">\n        <button type=\"button\" class=\"mtvat-btn mtvat-btn-secondary\" id=\"mtvat-back-btn\">Anterior<\/button>\n        <button type=\"button\" class=\"mtvat-btn mtvat-btn-primary\" id=\"mtvat-next-btn\" disabled>Siguiente<\/button>\n      <\/div>\n    <\/div>\n\n    <div class=\"mtvat-card\" id=\"mtvat-lead-card\" hidden>\n      <div class=\"mtvat-top\">\n        <div class=\"mtvat-badge-line\"><span>\u00daltimo paso<\/span> Contacto<\/div>\n        <div>\n          <div class=\"mtvat-progress-track\"><div class=\"mtvat-progress-bar\" style=\"width: 92%;\"><\/div><\/div>\n          <div class=\"mtvat-progress-meta\">\n            <span>Resultado preparado<\/span>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"mtvat-body\">\n        <div class=\"mtvat-lead-intro\">\n          <div class=\"mtvat-step-label\">Resultado casi listo<\/div>\n          <h3 class=\"mtvat-question-title\">D\u00e9janos tus datos para ver la recomendaci\u00f3n completa<\/h3>\n          <p class=\"mtvat-help\">As\u00ed podremos ayudarte partiendo de la operativa que acabas de describir.<\/p>\n        <\/div>\n\n        <div class=\"mtvat-lead-box\" id=\"mtvat-lead-box\">\n          <div id=\"mtvat-hubspot-target\">\n            <div class=\"hs-form-frame\" data-region=\"na1\" data-form-id=\"07570031-9265-4b84-b7f0-5ce025874f83\" data-portal-id=\"20760506\"><\/div>\n          <\/div>\n        <\/div>\n        <div class=\"mtvat-hs-status\" id=\"mtvat-hs-status\" role=\"status\" aria-live=\"polite\" aria-atomic=\"true\">Cargando formulario de contacto...<\/div>\n      <\/div>\n\n      <div class=\"mtvat-foot\">\n        <button type=\"button\" class=\"mtvat-btn mtvat-btn-secondary\" id=\"mtvat-lead-back-btn\">Corregir respuestas<\/button>\n        <button type=\"button\" class=\"mtvat-btn mtvat-btn-primary\" id=\"mtvat-lead-next-btn\" hidden>Ver resultado<\/button>\n      <\/div>\n    <\/div>\n\n    <div class=\"mtvat-card\" id=\"mtvat-result-card\" hidden>\n      <div class=\"mtvat-result-hero\">\n        <div class=\"mtvat-result-pill\" id=\"mtvat-result-pill\">Diagn\u00f3stico completado<\/div>\n        <h3 id=\"mtvat-result-title\">Resultado IVA preparado<\/h3>\n        <p id=\"mtvat-result-desc\"><\/p>\n      <\/div>\n\n      <div class=\"mtvat-result-body\">\n        <div class=\"mtvat-recommendation\">\n          <h4>Qu\u00e9 debes hacer ahora<\/h4>\n          <ol class=\"mtvat-result-actions\" id=\"mtvat-result-actions\"><\/ol>\n        <\/div>\n        <details class=\"mtvat-recap\">\n          <summary>Ver respuestas utilizadas para esta recomendaci\u00f3n<\/summary>\n          <div class=\"mtvat-summary\" id=\"mtvat-summary\"><\/div>\n        <\/details>\n        <div class=\"mtvat-note-box\">Orientaci\u00f3n inicial para ventas habituales. Si vendes mediante una plataforma que recauda el IVA, productos sujetos a impuestos especiales o servicios con reglas particulares, revisaremos el caso por separado.<\/div>\n        <div class=\"mtvat-actions\">\n          <button type=\"button\" class=\"mtvat-btn mtvat-btn-secondary\" id=\"mtvat-restart-btn\">Rehacer diagn\u00f3stico<\/button>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <script defer>\n    (function () {\n      'use strict';\n\n      var ROOT_ID = 'mt-vat-registration-form';\n\n      var HUBSPOT_CONFIG = {\n        portalId: '20760506',\n        formId: '07570031-9265-4b84-b7f0-5ce025874f83',\n        region: 'na1',\n        target: '#mtvat-hubspot-target'\n      };\n\n      var FIELD_NAMES = {\n        perfilVenta: 'iva_registro_perfil_venta',\n        situacionIvaUe: 'iva_registro_situacion_iva_ue',\n        tipoCliente: 'iva_registro_tipo_cliente',\n        obligacionPrincipal: 'iva_registro_obligacion_principal',\n        prioridad: 'iva_registro_prioridad'\n      };\n\n      var FIELD_DEFINITIONS = {\n        perfilVenta: {\n          label: 'Perfil de venta IVA',\n          terms: ['perfil', 'venta', 'iva']\n        },\n        situacionIvaUe: {\n          label: 'Situaci\u00f3n IVA UE',\n          terms: ['situaci', 'iva', 'ue']\n        },\n        tipoCliente: {\n          label: 'Tipo de cliente IVA',\n          terms: ['tipo', 'cliente', 'iva']\n        },\n        obligacionPrincipal: {\n          label: 'Obligaci\u00f3n principal IVA',\n          terms: ['obligaci', 'principal', 'iva']\n        },\n        prioridad: {\n          label: 'Prioridad registro IVA',\n          terms: ['prioridad', 'registro', 'iva']\n        }\n      };\n\n      var QUESTIONS = [\n        {\n          id: 'tipo_venta',\n          title: '\u00bfQu\u00e9 vender\u00e1s a clientes de la Uni\u00f3n Europea?',\n          help: 'Puedes marcar varias opciones. Un producto almacenado, un servicio profesional y una descarga digital no siguen las mismas reglas de IVA.',\n          multi: true,\n          grid: true,\n          options: [\n            { value: 'productos', label: 'Productos f\u00edsicos', detail: 'Ropa, cosm\u00e9tica, accesorios o cualquier art\u00edculo que se env\u00eda.' },\n            { value: 'servicios', label: 'Servicios profesionales', detail: 'Consultor\u00eda, dise\u00f1o, marketing, formaci\u00f3n en directo o asesor\u00eda.' },\n            { value: 'digitales', label: 'Productos o servicios digitales autom\u00e1ticos', detail: 'Software, ebooks, descargas, cursos grabados o membres\u00edas digitales.' }\n          ]\n        },\n        {\n          id: 'tipo_cliente',\n          title: '\u00bfQui\u00e9n te comprar\u00e1 en la UE?',\n          help: 'El IVA cambia mucho si vendes a particulares o a empresas con n\u00famero de IVA v\u00e1lido.',\n          multi: false,\n          options: [\n            { value: 'particulares', label: 'Particulares', detail: 'Personas que compran para uso propio.' },\n            { value: 'empresas', label: 'Empresas', detail: 'Negocios que compran para su actividad.' },\n            { value: 'ambos', label: 'Particulares y empresas' }\n          ]\n        },\n        {\n          id: 'iva_ue',\n          title: '\u00bfYa tienes un n\u00famero de IVA de alg\u00fan pa\u00eds de la UE?',\n          help: 'Por ejemplo, un n\u00famero espa\u00f1ol, alem\u00e1n o franc\u00e9s con el que puedas declarar IVA. No nos referimos solo a tener una empresa creada.',\n          multi: false,\n          options: [\n            { value: 'si', label: 'S\u00ed, ya tengo n\u00famero de IVA UE' },\n            { value: 'no', label: 'No, todav\u00eda no tengo un n\u00famero de IVA UE' },\n            { value: 'no_lo_se', label: 'No estoy seguro' }\n          ]\n        },\n        {\n          id: 'establecido_ue',\n          title: 'Aunque no tengas n\u00famero de IVA, \u00bftu negocio est\u00e1 dado de alta en la UE?',\n          help: 'Por ejemplo, aut\u00f3nomo o sociedad en Espa\u00f1a u otro pa\u00eds de la UE. Esto ayuda a distinguir un alta pendiente de una empresa que opera desde fuera.',\n          multi: false,\n          skipIf: function (answers) { return answers.iva_ue === 'si'; },\n          options: [\n            { value: 'si', label: 'S\u00ed, mi negocio est\u00e1 dado de alta en la UE' },\n            { value: 'no', label: 'No, mi negocio opera desde fuera de la UE' },\n            { value: 'no_lo_se', label: 'No estoy seguro' }\n          ]\n        },\n        {\n          id: 'destinos',\n          title: '\u00bfTus ventas abarcar\u00e1n m\u00e1s de un pa\u00eds de la UE?',\n          help: 'Esta respuesta sirve para detectar ventas transfronterizas. No necesitamos todav\u00eda una lista de pa\u00edses.',\n          multi: false,\n          options: [\n            { value: 'solo_pais', label: 'No, vender\u00e9 en un solo pa\u00eds de la UE' },\n            { value: 'otros_ue', label: 'S\u00ed, vender\u00e9 en varios pa\u00edses de la UE' },\n            { value: 'no_lo_se', label: 'Todav\u00eda no lo tengo decidido' }\n          ]\n        },\n        {\n          id: 'ubicacion_productos',\n          title: 'Antes de cada venta, \u00bfd\u00f3nde estar\u00e1n f\u00edsicamente tus productos?',\n          help: 'Lo importante es si ya tendr\u00e1s mercanc\u00eda guardada dentro de la UE o si cada pedido se importa directamente desde fuera.',\n          multi: false,\n          skipIf: function (answers) { return !hasSelected(answers.tipo_venta, 'productos'); },\n          options: [\n            { value: 'stock_iva_actual', label: 'En el pa\u00eds de la UE donde ya tengo IVA', detail: 'El producto estar\u00e1 almacenado all\u00ed antes de venderlo.', skipIf: function (answers) { return answers.iva_ue !== 'si'; } },\n            { value: 'stock_ue_sin_iva', label: 'En un pa\u00eds de la UE donde no tengo IVA', detail: 'Tambi\u00e9n si todav\u00eda no tienes ning\u00fan n\u00famero de IVA UE.' },\n            { value: 'directo_fuera_ue', label: 'Fuera de la UE, envi\u00e1ndolo directamente tras cada compra', detail: 'El paquete cruza la aduana para llegar al cliente.' },\n            { value: 'no_lo_se', label: 'Todav\u00eda no he decidido la log\u00edstica' }\n          ]\n        },\n        {\n          id: 'valor_importacion',\n          title: '\u00bfCada pedido enviado directamente desde fuera de la UE ser\u00e1 de 150 EUR o menos?',\n          help: 'Esta cifra importa porque IOSS solo puede utilizarse para env\u00edos de hasta 150 EUR y no cubre productos sujetos a impuestos especiales.',\n          multi: false,\n          skipIf: function (answers) {\n            return !hasSelected(answers.tipo_venta, 'productos') ||\n              answers.ubicacion_productos !== 'directo_fuera_ue' ||\n              !sellsToConsumers(answers);\n          },\n          options: [\n            { value: 'hasta_150', label: 'S\u00ed, todos ser\u00e1n de 150 EUR o menos' },\n            { value: 'mas_150', label: 'No, habr\u00e1 pedidos de m\u00e1s de 150 EUR' },\n            { value: 'no_lo_se', label: 'No lo s\u00e9 o habr\u00e1 pedidos de ambos tipos' }\n          ]\n        }\n      ];\n\n      var LABELS = {};\n      QUESTIONS.forEach(function (question) {\n        question.options.forEach(function (option) {\n          LABELS[question.id + ':' + option.value] = option.label;\n        });\n      });\n\n      var state = {\n        phase: 'quiz',\n        stepIndex: 0,\n        answers: {},\n        hubspotForm: null,\n        formSubmitted: false,\n        resultUnlocked: false\n      };\n      var STORAGE_KEY = 'muay-vat-registration-form-state-v1';\n\n      var root = document.getElementById(ROOT_ID);\n      if (!root) return;\n\n      var els = {\n        quizCard: root.querySelector('#mtvat-quiz-card'),\n        leadCard: root.querySelector('#mtvat-lead-card'),\n        resultCard: root.querySelector('#mtvat-result-card'),\n        stepNav: root.querySelector('#mtvat-steps-nav'),\n        questionBody: root.querySelector('#mtvat-question-body'),\n        backBtn: root.querySelector('#mtvat-back-btn'),\n        nextBtn: root.querySelector('#mtvat-next-btn'),\n        leadBackBtn: root.querySelector('#mtvat-lead-back-btn'),\n        leadNextBtn: root.querySelector('#mtvat-lead-next-btn'),\n        leadBox: root.querySelector('#mtvat-lead-box'),\n        hubspotTarget: root.querySelector('#mtvat-hubspot-target'),\n        hsStatus: root.querySelector('#mtvat-hs-status'),\n        resultPill: root.querySelector('#mtvat-result-pill'),\n        resultTitle: root.querySelector('#mtvat-result-title'),\n        resultDesc: root.querySelector('#mtvat-result-desc'),\n        resultSummary: root.querySelector('#mtvat-summary'),\n        resultActions: root.querySelector('#mtvat-result-actions'),\n        restartBtn: root.querySelector('#mtvat-restart-btn')\n      };\n\n      function hasSelected(value, needle) {\n        return Array.isArray(value) && value.indexOf(needle) !== -1;\n      }\n\n      function canOpenLeadStep() {\n        var questions = activeQuestions();\n        return questions.length > 0 && questions.every(function (question) {\n          return hasAnswer(question, state.answers[question.id]);\n        });\n      }\n\n      function updateStepNav() {\n        if (!els.stepNav) return;\n        var questions = activeQuestions();\n        var canOpenLead = canOpenLeadStep();\n        var html = questions.map(function (question, index) {\n          var isActive = state.phase === 'quiz' && state.stepIndex === index;\n          var isDone = hasAnswer(question, state.answers[question.id]);\n          var classes = 'mtvat-step-tab' + (isActive ? ' is-active' : '') + (isDone ? ' is-done' : '');\n          var label = 'Pregunta ' + (index + 1) + ': ' + question.title;\n          return '<button type=\"button\" class=\"' + classes + '\" data-question-step=\"' + index + '\" role=\"tab\" aria-label=\"' + escapeAttr(label) + '\" title=\"' + escapeAttr(label) + '\" aria-selected=\"' + (isActive ? 'true' : 'false') + '\">' +\n            '<span class=\"mtvat-step-num\">' + (index + 1) + '<\/span><\/button>';\n        }).join('');\n        var contactNumber = questions.length + 1;\n        var leadActive = state.phase === 'lead';\n        var leadDone = state.formSubmitted;\n        var leadLocked = state.formSubmitted || !canOpenLead;\n        html += '<button type=\"button\" class=\"mtvat-step-tab' + (leadActive ? ' is-active' : '') + (leadDone ? ' is-done' : '') + (leadLocked ? ' is-locked' : '') + '\" data-phase-step=\"lead\" role=\"tab\" aria-label=\"Paso ' + contactNumber + ': Contacto\" title=\"Contacto\" aria-disabled=\"' + (leadLocked ? 'true' : 'false') + '\" aria-selected=\"' + (leadActive ? 'true' : 'false') + '\">' +\n          '<span class=\"mtvat-step-num\">' + contactNumber + '<\/span><\/button>';\n        var resultNumber = questions.length + 2;\n        var resultActive = state.phase === 'result';\n        var resultLocked = !state.resultUnlocked;\n        html += '<button type=\"button\" class=\"mtvat-step-tab' + (resultActive ? ' is-active' : '') + (resultLocked ? ' is-locked' : '') + '\" data-phase-step=\"result\" role=\"tab\" aria-label=\"Paso ' + resultNumber + ': Resultado\" title=\"Resultado\" aria-disabled=\"' + (resultLocked ? 'true' : 'false') + '\" aria-selected=\"' + (resultActive ? 'true' : 'false') + '\">' +\n          '<span class=\"mtvat-step-num\">' + resultNumber + '<\/span><\/button>';\n        els.stepNav.innerHTML = html;\n      }\n\n      function sellsToConsumers(answers) {\n        return answers.tipo_cliente === 'particulares' || answers.tipo_cliente === 'ambos';\n      }\n\n      function sellsToBusinesses(answers) {\n        return answers.tipo_cliente === 'empresas' || answers.tipo_cliente === 'ambos';\n      }\n\n      function wantsOtherEu(answers) {\n        return answers.destinos === 'otros_ue';\n      }\n\n      function hasEuVatNumber(answers) {\n        return answers.iva_ue === 'si';\n      }\n\n      function activeQuestions() {\n        return QUESTIONS.filter(function (question) {\n          return !question.skipIf || !question.skipIf(state.answers);\n        });\n      }\n\n      function pruneInactiveAnswers() {\n        QUESTIONS.forEach(function (question) {\n          if (question.skipIf && question.skipIf(state.answers)) {\n            delete state.answers[question.id];\n          }\n        });\n        if (state.answers.ubicacion_productos === 'stock_iva_actual' && state.answers.iva_ue !== 'si') {\n          delete state.answers.ubicacion_productos;\n        }\n      }\n\n      function getStorage() {\n        try {\n          return window.localStorage;\n        } catch (error) {\n          return null;\n        }\n      }\n\n      function hasSavedAnswers() {\n        return Object.keys(state.answers || {}).length > 0;\n      }\n\n      function migrateSavedAnswers(answers) {\n        var migrated = Object.assign({}, answers || {});\n        if (Array.isArray(migrated.destinos)) {\n          if (migrated.destinos.indexOf('otros_ue') !== -1) migrated.destinos = 'otros_ue';\n          else if (migrated.destinos.indexOf('solo_pais') !== -1) migrated.destinos = 'solo_pais';\n          else migrated.destinos = 'no_lo_se';\n        }\n        if (!migrated.ubicacion_productos && hasSelected(migrated.tipo_venta, 'productos')) {\n          if (migrated.modelo_logistico === 'almacenar' || migrated.modelo_logistico === 'ambas') {\n            migrated.ubicacion_productos =\n              migrated.iva_ue === 'si' && migrated.origen_envio === 'pais_iva' ? 'stock_iva_actual' : 'stock_ue_sin_iva';\n          } else if (migrated.origen_envio === 'fuera_ue') {\n            migrated.ubicacion_productos = 'directo_fuera_ue';\n          } else {\n            migrated.ubicacion_productos = 'no_lo_se';\n          }\n        }\n        delete migrated.origen_envio;\n        delete migrated.modelo_logistico;\n        delete migrated.paises_almacenamiento;\n        delete migrated.oss_actual;\n        return migrated;\n      }\n\n      function saveState() {\n        var storage = getStorage();\n        if (!storage) return;\n        if (!hasSavedAnswers() && state.phase === 'quiz' && state.stepIndex === 0) {\n          storage.removeItem(STORAGE_KEY);\n          return;\n        }\n        storage.setItem(STORAGE_KEY, JSON.stringify({\n          phase: state.phase,\n          stepIndex: state.stepIndex,\n          answers: state.answers,\n          formSubmitted: !!state.formSubmitted,\n          resultUnlocked: !!state.resultUnlocked\n        }));\n      }\n\n      function restoreState() {\n        var storage = getStorage();\n        if (!storage) return false;\n        try {\n          var raw = storage.getItem(STORAGE_KEY);\n          if (!raw) return false;\n          var saved = JSON.parse(raw);\n          if (!saved || typeof saved !== 'object' || !saved.answers || typeof saved.answers !== 'object') {\n            return false;\n          }\n          state.answers = migrateSavedAnswers(saved.answers);\n          state.stepIndex = Number.isFinite(saved.stepIndex) ? Math.max(0, saved.stepIndex) : 0;\n          state.phase = ['quiz', 'lead', 'result'].indexOf(saved.phase) !== -1 ? saved.phase : 'quiz';\n          state.formSubmitted = !!saved.formSubmitted;\n          state.resultUnlocked = !!saved.resultUnlocked || state.phase === 'result';\n          pruneInactiveAnswers();\n          return hasSavedAnswers();\n        } catch (error) {\n          storage.removeItem(STORAGE_KEY);\n          return false;\n        }\n      }\n\n      function hasAnswer(question, value) {\n        if (!question) return false;\n        if (question.multi) return Array.isArray(value) && value.length > 0;\n        return value !== undefined && value !== null && value !== '';\n      }\n\n      function escapeHtml(value) {\n        return String(value == null ? '' : value)\n          .replace(\/&\/g, '&amp;')\n          .replace(\/<\/g, '&lt;')\n          .replace(\/>\/g, '&gt;')\n          .replace(\/\"\/g, '&quot;')\n          .replace(\/'\/g, '&#039;');\n      }\n\n      function escapeAttr(value) {\n        return escapeHtml(value).replace(\/`\/g, '&#096;');\n      }\n\n      function labelFor(questionId, value) {\n        if (Array.isArray(value)) {\n          return value.map(function (item) { return LABELS[questionId + ':' + item] || item; }).join(', ');\n        }\n        return LABELS[questionId + ':' + value] || value || '';\n      }\n\n      function uniquePush(list, value) {\n        if (list.indexOf(value) === -1) list.push(value);\n      }\n\n      function addBlock(blocks, key, title, text, color, bg, mark) {\n        var exists = blocks.some(function (block) { return block.key === key; });\n        if (!exists) {\n          blocks.push({ key: key, title: title, text: text, color: color, bg: bg, mark: mark });\n        }\n      }\n\n      function buildDiagnosis() {\n        var answers = state.answers;\n        var sellsServices = hasSelected(answers.tipo_venta, 'servicios');\n        var sellsPhysical = hasSelected(answers.tipo_venta, 'productos');\n        var sellsDigital = hasSelected(answers.tipo_venta, 'digitales');\n        var b2c = sellsToConsumers(answers);\n        var b2b = sellsToBusinesses(answers);\n        var otherEu = wantsOtherEu(answers);\n        var hasVat = hasEuVatNumber(answers);\n        var storage = sellsPhysical && answers.ubicacion_productos === 'stock_ue_sin_iva';\n        var stockWithCurrentVat = sellsPhysical && answers.ubicacion_productos === 'stock_iva_actual' && hasVat;\n        var importFromOutside = sellsPhysical && answers.ubicacion_productos === 'directo_fuera_ue';\n        var blocks = [];\n        var registrations = [];\n        var flags = [];\n        var score = 10;\n        var priority = 'baja';\n        var main = 'sin_registro_adicional_aparente';\n\n        if (storage) {\n          uniquePush(registrations, 'iva_local_almacenamiento');\n          uniquePush(flags, 'almacenamiento_en_pais_destino');\n          score += 45;\n          priority = 'alta';\n          main = 'iva_local_por_almacenamiento';\n          addBlock(\n            blocks,\n            'iva-local',\n            'IVA local por almacenamiento',\n            'Si almacenas mercanc\u00eda en un pa\u00eds, lo normal es necesitar n\u00famero de IVA en ese pa\u00eds antes de operar.',\n            '#e0364c',\n            '#fff0f3',\n            'IVA'\n          );\n        }\n\n        if (sellsPhysical && !hasVat && answers.ubicacion_productos === 'stock_ue_sin_iva') {\n          uniquePush(registrations, 'primer_iva_ue');\n          score += 30;\n          priority = priority === 'alta' ? 'alta' : 'media';\n          if (main === 'sin_registro_adicional_aparente') main = 'primer_iva_ue_necesario';\n          addBlock(\n            blocks,\n            'primer-iva',\n            'Primer n\u00famero de IVA UE',\n            'Si no tienes establecimiento ni n\u00famero de IVA en la UE, conviene fijar un pa\u00eds de identificaci\u00f3n antes de enviar desde Europa o vender importado.',\n            '#0083e3',\n            '#e9f5ff',\n            'UE'\n          );\n        }\n\n        if (sellsDigital && b2c) {\n          uniquePush(registrations, 'primer_iva_ue');\n          score += 35;\n          priority = 'alta';\n          main = main === 'sin_registro_adicional_aparente' ? 'iva_ue_y_oss_digital' : main;\n          addBlock(\n            blocks,\n            'digital-vat',\n            'IVA UE para digital',\n            'Para productos o servicios digitales B2C en la UE, necesitar\u00e1s un pa\u00eds de identificaci\u00f3n y operar por OSS.',\n            '#0083e3',\n            '#e9f5ff',\n            'UE'\n          );\n        }\n\n        if ((stockWithCurrentVat || sellsDigital) && b2c && otherEu) {\n          uniquePush(registrations, 'oss');\n          score += 28;\n          priority = priority === 'alta' ? 'alta' : 'media';\n          if (main === 'sin_registro_adicional_aparente') main = 'oss_b2c_ue';\n          addBlock(\n            blocks,\n            'oss',\n            'OSS para ventas B2C UE',\n            'Para vender a particulares de otros pa\u00edses UE, la OSS permite declarar el IVA de destino sin registrarte pa\u00eds por pa\u00eds cuando no hay stock local.',\n            '#00ad65',\n            '#e8fbf2',\n            'OSS'\n          );\n        }\n\n        if (sellsDigital && b2c && otherEu) {\n          uniquePush(flags, 'oss_antes_moss');\n          addBlock(\n            blocks,\n            'digital-oss',\n            'Digital: OSS, antes MOSS',\n            'En productos digitales a particulares se aplica el IVA del pa\u00eds del consumidor. La v\u00eda pr\u00e1ctica es OSS, heredera de la antigua mini ventanilla \u00fanica.',\n            '#f2a12b',\n            '#fff6e6',\n            'B2C'\n          );\n        }\n\n        if (importFromOutside && b2c && answers.valor_importacion === 'hasta_150') {\n          uniquePush(registrations, 'ioss');\n          score += 32;\n          priority = 'alta';\n          main = main !== 'iva_local_por_almacenamiento' ? 'ioss_importacion_b2c' : main;\n          addBlock(\n            blocks,\n            'ioss',\n            'IOSS si importas sin almacenar',\n            'Si vendes a particulares de la UE desde fuera de la UE y no almacenas dentro, la IOSS puede centralizar el IVA de importaci\u00f3n en un solo registro.',\n            '#f2a12b',\n            '#fff6e6',\n            'IOSS'\n          );\n        }\n\n        if (importFromOutside && b2c && answers.valor_importacion !== 'hasta_150') {\n          uniquePush(flags, 'origen_pais_destino_sin_almacen_definido');\n          score += 34;\n          priority = 'alta';\n          main = 'revision_manual';\n          addBlock(\n            blocks,\n            'import-review',\n            'Importaci\u00f3n fuera de IOSS confirmado',\n            'IOSS solo sirve para env\u00edos directos a particulares de hasta 150 EUR. Si superas ese importe o todav\u00eda no lo sabes, hay que revisar importaci\u00f3n y liquidaci\u00f3n de IVA.',\n            '#0083e3',\n            '#e9f5ff',\n            'REV'\n          );\n        }\n\n        if (stockWithCurrentVat && b2b && !b2c && otherEu) {\n          uniquePush(registrations, 'sin_iva_adicional_b2b_distancia');\n          if (main === 'sin_registro_adicional_aparente') main = 'sin_iva_adicional_b2b_distancia';\n          addBlock(\n            blocks,\n            'b2b-distance',\n            'Venta a empresas a distancia',\n            'Con IVA UE y venta a empresas, no parece necesario registrarte en cada pa\u00eds solo por vender a distancia sin almacenar.',\n            '#00ad65',\n            '#e8fbf2',\n            'OK'\n          );\n        }\n\n        if (sellsServices && !sellsPhysical && !sellsDigital && b2b && otherEu && answers.establecido_ue === 'si' && answers.iva_ue !== 'si') {\n          uniquePush(registrations, 'primer_iva_ue');\n          score += 30;\n          priority = 'media';\n          main = 'primer_iva_ue_necesario';\n          addBlock(\n            blocks,\n            'services-eu-vat',\n            'Alta intracomunitaria para servicios B2B',\n            'Si prestas servicios a empresas de otros pa\u00edses de la UE desde una actividad establecida en la UE, debes confirmar tu identificaci\u00f3n de IVA intracomunitaria.',\n            '#0083e3',\n            '#e9f5ff',\n            'UE'\n          );\n        }\n\n        if (sellsServices && !sellsPhysical && !sellsDigital && b2b && main === 'sin_registro_adicional_aparente') {\n          uniquePush(registrations, 'servicios_sin_iva_adicional_aparente');\n          main = 'servicios_sin_iva_adicional_aparente';\n          addBlock(\n            blocks,\n            'services',\n            'Servicios generales',\n            'Para servicios generales, con las respuestas dadas no parece necesario abrir un n\u00famero de IVA solo por este punto.',\n            '#00ad65',\n            '#e8fbf2',\n            'OK'\n          );\n        }\n\n        if (stockWithCurrentVat && !otherEu && main === 'sin_registro_adicional_aparente') {\n          addBlock(\n            blocks,\n            'stock-covered',\n            'Stock cubierto por tu IVA actual',\n            'Has indicado que el producto estar\u00e1 en el pa\u00eds donde ya tienes IVA y que no vender\u00e1s en varios pa\u00edses de la UE.',\n            '#00ad65',\n            '#e8fbf2',\n            'OK'\n          );\n        }\n\n        if (!blocks.length) {\n          addBlock(\n            blocks,\n            'review',\n            'Caso para revisar',\n            'Las respuestas no activan una obligaci\u00f3n clara, pero hay suficientes variables para revisar pa\u00eds, cliente y log\u00edstica antes de vender.',\n            '#0083e3',\n            '#e9f5ff',\n            'REV'\n          );\n          uniquePush(registrations, 'revision_manual');\n          priority = 'media';\n          main = 'revision_manual';\n        }\n\n        if (priority !== 'alta' && score >= 55) priority = 'alta';\n        else if (priority === 'baja' && score >= 35) priority = 'media';\n\n        return {\n          main: main,\n          priority: priority,\n          score: Math.min(score, 100),\n          registrations: registrations,\n          flags: flags,\n          blocks: blocks,\n          title: resultTitleFor(main, priority, answers),\n          desc: resultDescFor(main, answers)\n        };\n      }\n\n      function resultTitleFor(main, priority, answers) {\n        if (main === 'iva_local_por_almacenamiento') return 'Necesitas IVA local en el pa\u00eds de la UE donde guardar\u00e1s tus productos';\n        if (main === 'ioss_importacion_b2c') return 'Puedes gestionar estos pedidos importados mediante IOSS';\n        if (main === 'iva_ue_y_oss_digital') return 'Debes gestionar el IVA del cliente en tus ventas digitales';\n        if (main === 'oss_b2c_ue') return 'Puedes centralizar estas ventas a particulares mediante OSS';\n        if (main === 'primer_iva_ue_necesario' && hasSelected(answers.tipo_venta, 'servicios') && sellsToBusinesses(answers) && wantsOtherEu(answers)) {\n          return 'Necesitas validar tu alta de IVA intracomunitario para estos servicios';\n        }\n        if (main === 'primer_iva_ue_necesario') return 'Necesitas validar un primer registro de IVA en la UE';\n        if (main === 'sin_iva_adicional_b2b_distancia') return 'No aparece un nuevo IVA local solo por estas ventas a empresas';\n        if (main === 'servicios_sin_iva_adicional_aparente') return 'No aparece un nuevo IVA local solo por estos servicios a empresas';\n        if (main === 'sin_registro_adicional_aparente') return 'No aparece un registro adicional con esta operativa';\n        return 'Hemos recibido tu caso y lo revisaremos contigo';\n      }\n\n      function resultDescFor(main, answers) {\n        if (main === 'iva_local_por_almacenamiento') {\n          return 'Has indicado que tus productos estar\u00e1n almacenados en un pa\u00eds de la UE donde no tienes IVA. Tener stock disponible para vender desde all\u00ed exige normalmente un registro de IVA en ese pa\u00eds.';\n        }\n        if (main === 'ioss_importacion_b2c') {\n          return 'Enviar\u00e1s cada pedido directamente desde fuera de la UE a particulares y has indicado que no superar\u00e1 150 EUR. IOSS permite cobrar y declarar el IVA del pa\u00eds del cliente mediante una sola inscripci\u00f3n.';\n        }\n        if (main === 'iva_ue_y_oss_digital') {\n          return 'Los productos digitales autom\u00e1ticos vendidos a particulares tributan en el pa\u00eds del cliente. La ventanilla \u00fanica correspondiente puede centralizar la declaraci\u00f3n.';\n        }\n        if (main === 'oss_b2c_ue') {\n          return 'Tienes el producto en el pa\u00eds donde ya dispones de IVA y vender\u00e1s a particulares de otros pa\u00edses de la UE. OSS puede declarar el IVA de esas ventas sin nuevos registros por cada pa\u00eds de cliente.';\n        }\n        if (main === 'primer_iva_ue_necesario') {\n          if (hasSelected(answers.tipo_venta, 'servicios') && sellsToBusinesses(answers) && wantsOtherEu(answers)) {\n            return 'Prestar\u00e1s servicios a empresas de otros pa\u00edses de la UE desde un negocio dado de alta en la UE, pero no has indicado un n\u00famero de IVA UE para esas operaciones.';\n          }\n          return 'No has indicado un n\u00famero de IVA en la UE y la operativa necesita confirmar en qu\u00e9 pa\u00eds debe comenzar el registro.';\n        }\n        if (main === 'sin_iva_adicional_b2b_distancia') {\n          return 'El producto sale del pa\u00eds donde ya tienes IVA y vendes a empresas de otros pa\u00edses. Con un n\u00famero de IVA v\u00e1lido del cliente, la venta no exige por s\u00ed sola un registro local en cada destino.';\n        }\n        if (main === 'servicios_sin_iva_adicional_aparente') {\n          return 'Para servicios profesionales prestados a empresas, normalmente el cliente declara el IVA mediante inversi\u00f3n del sujeto pasivo. Hay excepciones seg\u00fan el servicio.';\n        }\n        if (main === 'sin_registro_adicional_aparente') {\n          return 'Has indicado que el producto se mantiene en el pa\u00eds de la UE donde ya tienes IVA y que no ampliar\u00e1s la venta a otros pa\u00edses de la UE.';\n        }\n        if (hasSelected(answers.tipo_venta, 'productos') && answers.ubicacion_productos === 'directo_fuera_ue') {\n          return 'Gracias por completar el formulario. Tus pedidos saldr\u00e1n directamente desde fuera de la UE y necesitamos revisar c\u00f3mo se liquidar\u00e1 el IVA de importaci\u00f3n. Te contactaremos con m\u00e1s informaci\u00f3n para tu caso.';\n        }\n        return 'Gracias por completar el formulario. Hemos recibido tus respuestas y te contactaremos con m\u00e1s informaci\u00f3n para concretar el registro o tratamiento de IVA que corresponda a tu caso.';\n      }\n\n      function resultActionsFor(main, answers) {\n        if (main === 'iva_local_por_almacenamiento') {\n          return [\n            'Confirma el pa\u00eds o pa\u00edses de la UE donde guardar\u00e1s mercanc\u00eda.',\n            'Tramita o valida el n\u00famero de IVA local antes de disponer de stock para vender desde all\u00ed.',\n            'Si adem\u00e1s vendes a particulares en otros pa\u00edses UE, revisa OSS para esas ventas posteriores.'\n          ];\n        }\n        if (main === 'ioss_importacion_b2c') {\n          return [\n            'Comprueba que cada env\u00edo importado a particulares no supera 150 EUR y que no contiene productos sujetos a impuestos especiales.',\n            'Valida el registro IOSS o el intermediario que corresponda para cobrar el IVA en la compra.',\n            'Si cambias a un almac\u00e9n dentro de la UE, necesitar\u00e1s revisar el IVA local del pa\u00eds de stock.'\n          ];\n        }\n        if (main === 'iva_ue_y_oss_digital') {\n          return [\n            'Confirma los pa\u00edses en los que viven tus clientes particulares.',\n            'Valida la ventanilla \u00fanica que corresponde seg\u00fan tu negocio est\u00e9 dentro o fuera de la UE.',\n            'Configura el cobro del IVA aplicable al pa\u00eds de cada cliente.'\n          ];\n        }\n        if (main === 'oss_b2c_ue') {\n          return [\n            'Confirma que el stock se mantiene \u00fanicamente en el pa\u00eds donde ya tienes IVA.',\n            'Valida si tus ventas a particulares deben tributar en el pa\u00eds de destino.',\n            'Utiliza OSS, si procede, para declarar esas ventas desde un solo portal.'\n          ];\n        }\n        if (main === 'primer_iva_ue_necesario') {\n          if (hasSelected(answers.tipo_venta, 'servicios') && sellsToBusinesses(answers) && wantsOtherEu(answers)) {\n            return [\n              'Confirma tu alta o n\u00famero de IVA para operaciones intracomunitarias.',\n              'Comprueba el n\u00famero de IVA del cliente empresa antes de facturar.',\n              'Aplica en factura el tratamiento B2B intracomunitario que corresponda.'\n            ];\n          }\n          return [\n            'Define desde qu\u00e9 pa\u00eds saldr\u00e1n tus productos y d\u00f3nde comenzar\u00e1 la operativa.',\n            'Confirma el pa\u00eds de la UE en el que debes solicitar tu primer n\u00famero de IVA.',\n            'No inicies almacenamiento o ventas que requieran IVA hasta validar ese registro.'\n          ];\n        }\n        if (main === 'sin_iva_adicional_b2b_distancia') {\n          return [\n            'Comprueba en VIES el n\u00famero de IVA de cada cliente empresa.',\n            'Aplica en factura el tratamiento B2B que corresponda a la operaci\u00f3n.',\n            'Vuelve a revisar el caso si almacenas producto en otro pa\u00eds o empiezas a vender a particulares.'\n          ];\n        }\n        if (main === 'servicios_sin_iva_adicional_aparente') {\n          return [\n            'Comprueba que tu cliente compra como empresa y, si corresponde, valida su n\u00famero de IVA.',\n            'Aplica en factura el tratamiento B2B que corresponda.',\n            'Solicita revisi\u00f3n si prestas servicios digitales, relacionados con inmuebles, eventos u otras excepciones.'\n          ];\n        }\n        if (main === 'sin_registro_adicional_aparente') {\n          return [\n            'Opera con el n\u00famero de IVA que ya tienes para el pa\u00eds indicado.',\n            'Revisa la recomendaci\u00f3n si empiezas a guardar producto en otro pa\u00eds de la UE.',\n            'Revisa tambi\u00e9n el caso si comienzas a vender a particulares de otros pa\u00edses de la UE.'\n          ];\n        }\n        if (hasSelected(answers.tipo_venta, 'productos') && answers.ubicacion_productos === 'directo_fuera_ue') {\n          return [\n            'Nuestro equipo revisar\u00e1 el valor y el tipo de los paquetes que llegar\u00e1n a clientes de la UE.',\n            'Te indicaremos si encajan en IOSS o c\u00f3mo debe gestionarse el IVA de importaci\u00f3n.',\n            'Nos pondremos en contacto contigo con los siguientes pasos para tu operativa.'\n          ];\n        }\n        return [\n          'Nuestro equipo revisar\u00e1 tus respuestas y la operativa descrita.',\n          'Te contactaremos con la recomendaci\u00f3n concreta para tu caso.',\n          'No necesitas completar de nuevo este formulario mientras revisamos la informaci\u00f3n.'\n        ];\n      }\n\n      function hubspotSaleProfile() {\n        var saleTypes = Array.isArray(state.answers.tipo_venta) ? state.answers.tipo_venta : [];\n        var labels = {\n          servicios: 'Servicios',\n          productos: 'Productos',\n          digitales: 'Digitales'\n        };\n        if (saleTypes.length > 1) return 'Mixto';\n        return labels[saleTypes[0]] || '';\n      }\n\n      function hubspotEuVatStatus() {\n        if (state.answers.iva_ue === 'si') return 'Con IVA UE';\n        if (state.answers.establecido_ue === 'si' && state.answers.iva_ue === 'no') return 'Establecido sin IVA UE';\n        if (state.answers.establecido_ue === 'no' && state.answers.iva_ue === 'no') return 'Fuera UE sin IVA UE';\n        return 'Por confirmar';\n      }\n\n      function hubspotCustomerType() {\n        return {\n          empresas: 'Empresas',\n          particulares: 'Particulares',\n          ambos: 'Ambos'\n        }[state.answers.tipo_cliente] || '';\n      }\n\n      function hubspotMainObligation(main) {\n        return {\n          sin_registro_adicional_aparente: 'Sin registro adicional aparente',\n          iva_local_por_almacenamiento: 'IVA local por almacenamiento',\n          primer_iva_ue_necesario: 'Primer IVA UE necesario',\n          iva_ue_y_oss_digital: 'IVA UE y OSS digital',\n          oss_b2c_ue: 'OSS B2C UE',\n          ioss_importacion_b2c: 'IOSS importaci\u00f3n B2C',\n          sin_iva_adicional_b2b_distancia: 'Sin IVA adicional B2B a distancia',\n          servicios_sin_iva_adicional_aparente: 'Servicios sin IVA adicional aparente',\n          revision_manual: 'Revisi\u00f3n manual'\n        }[main] || 'Revisi\u00f3n manual';\n      }\n\n      function hubspotPriority(priority) {\n        return {\n          baja: 'Baja',\n          media: 'Media',\n          alta: 'Alta'\n        }[priority] || '';\n      }\n\n      function getHubspotValues() {\n        pruneInactiveAnswers();\n        var diagnosis = buildDiagnosis();\n        return {\n          perfilVenta: hubspotSaleProfile(),\n          situacionIvaUe: hubspotEuVatStatus(),\n          tipoCliente: hubspotCustomerType(),\n          obligacionPrincipal: hubspotMainObligation(diagnosis.main),\n          prioridad: hubspotPriority(diagnosis.priority)\n        };\n      }\n\n      function fieldHasValue(value) {\n        return value !== undefined && value !== null && value !== '';\n      }\n\n      function normalizeHubspotValue(value) {\n        return value == null ? '' : String(value);\n      }\n\n      function hubspotFieldReference(fieldName) {\n        return '0-1\/' + fieldName;\n      }\n\n      function normalizeHubspotFieldName(fieldName) {\n        return String(fieldName || '')\n          .replace(\/^0-1\\\/\/, '')\n          .normalize('NFD')\n          .replace(\/[\\u0300-\\u036f]\/g, '')\n          .toLowerCase()\n          .replace(\/[^a-z0-9]+\/g, ' ')\n          .trim();\n      }\n\n      function resolveHubspotFieldReference(formFields, fieldKey) {\n        var desired = hubspotFieldReference(FIELD_NAMES[fieldKey]);\n        var exact = formFields.find(function (field) {\n          return field && (field.name === desired || field.name === FIELD_NAMES[fieldKey]);\n        });\n        if (exact) return exact.name.indexOf('\/') === -1 ? hubspotFieldReference(exact.name) : exact.name;\n\n        var terms = FIELD_DEFINITIONS[fieldKey].terms;\n        var matched = formFields.find(function (field) {\n          var normalized = normalizeHubspotFieldName(field && field.name);\n          return terms.every(function (term) { return normalized.indexOf(term) !== -1; });\n        });\n        if (!matched) return '';\n        return matched.name.indexOf('\/') === -1 ? hubspotFieldReference(matched.name) : matched.name;\n      }\n\n      async function getHubspotFieldMap(form) {\n        if (!form || typeof form.getFormFieldValues !== 'function') return null;\n        var formFields;\n        try {\n          formFields = await form.getFormFieldValues();\n        } catch (error) {\n          updateHubspotStatus('No se pudieron leer los campos del formulario de HubSpot.', true);\n          return null;\n        }\n        if (!Array.isArray(formFields)) return null;\n\n        var fields = {};\n        var missing = [];\n        Object.keys(FIELD_DEFINITIONS).forEach(function (fieldKey) {\n          fields[fieldKey] = resolveHubspotFieldReference(formFields, fieldKey);\n          if (!fields[fieldKey]) missing.push(FIELD_DEFINITIONS[fieldKey].label);\n        });\n        if (missing.length) {\n          updateHubspotStatus('A\u00f1ade como campos ocultos al formulario de HubSpot: ' + missing.join(', ') + '.', true);\n          return null;\n        }\n        return fields;\n      }\n\n      function hubspotValueMatches(actual, expected) {\n        if (Array.isArray(actual)) return actual.indexOf(expected) !== -1;\n        return normalizeHubspotValue(actual) === expected;\n      }\n\n      async function setVerifiedHubspotValue(form, fieldReference, value) {\n        var expected = normalizeHubspotValue(value);\n        try {\n          \/\/ En el formulario se a\u00f1aden como campos ocultos; HubSpot espera string[].\n          form.setFieldValue(fieldReference, [expected]);\n          if (typeof form.getFieldValue !== 'function' ||\n            hubspotValueMatches(await form.getFieldValue(fieldReference), expected)) {\n            return true;\n          }\n        } catch (error) {\n          \/\/ La propiedad podr\u00eda haberse a\u00f1adido de forma visible como desplegable.\n        }\n        try {\n          form.setFieldValue(fieldReference, expected);\n          return typeof form.getFieldValue !== 'function' ||\n            hubspotValueMatches(await form.getFieldValue(fieldReference), expected);\n        } catch (error) {\n          return false;\n        }\n      }\n\n      async function syncHubspotHiddenFields(form) {\n        if (!form || typeof form.setFieldValue !== 'function') return false;\n        var fields = await getHubspotFieldMap(form);\n        if (!fields) return false;\n        var values = getHubspotValues();\n        var failed = [];\n        for (var fieldKey of Object.keys(values)) {\n          if (!fieldHasValue(values[fieldKey])) continue;\n          if (!await setVerifiedHubspotValue(form, fields[fieldKey], values[fieldKey])) {\n            failed.push(FIELD_DEFINITIONS[fieldKey].label);\n          }\n        }\n        if (failed.length) {\n          updateHubspotStatus('No se pudieron asignar valores a: ' + failed.join(', ') + '. Revisa las opciones internas del desplegable.', true);\n          return false;\n        }\n        return true;\n      }\n\n      function updateHubspotStatus(message, isError) {\n        if (!els.hsStatus) return;\n        els.hsStatus.textContent = message || '';\n        els.hsStatus.classList.toggle('is-error', !!isError);\n      }\n\n      function hubspotEventMatches(event) {\n        var detail = event && event.detail ? event.detail : {};\n        return detail.formId === HUBSPOT_CONFIG.formId;\n      }\n\n      function hubspotFormFromEvent(event) {\n        if (!window.HubSpotFormsV4 || typeof window.HubSpotFormsV4.getFormFromEvent !== 'function') return null;\n        return window.HubSpotFormsV4.getFormFromEvent(event);\n      }\n\n      function prepareLeadStep() {\n        if (state.formSubmitted) {\n          renderResult();\n          return;\n        }\n        showOnly('lead');\n        if (els.leadNextBtn) els.leadNextBtn.hidden = true;\n        if (state.hubspotForm) {\n          updateHubspotStatus('Preparando tus respuestas para el formulario...', false);\n          syncHubspotHiddenFields(state.hubspotForm).then(function (synced) {\n            if (synced && state.phase === 'lead' && !state.formSubmitted) {\n              updateHubspotStatus('Tus respuestas ya est\u00e1n vinculadas al formulario.', false);\n            }\n          });\n        } else {\n          updateHubspotStatus('Cargando formulario de contacto...', false);\n        }\n        saveState();\n      }\n\n      function showOnly(cardName) {\n        state.phase = cardName;\n        els.quizCard.hidden = cardName !== 'quiz';\n        els.leadCard.hidden = cardName !== 'lead';\n        els.resultCard.hidden = cardName !== 'result';\n        updateStepNav();\n        saveState();\n      }\n\n      function renderQuestion() {\n        pruneInactiveAnswers();\n        var questions = activeQuestions();\n        if (state.stepIndex >= questions.length) state.stepIndex = questions.length - 1;\n        if (state.stepIndex < 0) state.stepIndex = 0;\n        var question = questions[state.stepIndex];\n        var answer = state.answers[question.id];\n        var options = question.options.filter(function (option) {\n          return !option.skipIf || !option.skipIf(state.answers);\n        });\n        var hasCurrentAnswer = hasAnswer(question, answer);\n        var optionsClass = 'mtvat-options' + (question.grid || options.length > 4 ? ' is-grid' : '');\n        var html = '';\n\n        els.backBtn.disabled = state.stepIndex === 0;\n        els.nextBtn.disabled = !hasCurrentAnswer;\n        els.nextBtn.textContent = state.stepIndex === questions.length - 1 ? 'Continuar' : 'Siguiente';\n        updateStepNav();\n\n        html += '<div class=\"mtvat-step-label\">Pregunta ' + (state.stepIndex + 1) + ' de ' + questions.length + '<\/div>';\n        html += '<h3 class=\"mtvat-question-title\">' + escapeHtml(question.title) + '<\/h3>';\n        if (question.help) html += '<p class=\"mtvat-help\">' + escapeHtml(question.help) + '<\/p>';\n        if (question.multi) html += '<div class=\"mtvat-multi-note\">Selecci\u00f3n m\u00faltiple<\/div>';\n        html += '<div class=\"' + optionsClass + '\" role=\"group\" aria-label=\"' + escapeAttr(question.title) + '\">';\n        options.forEach(function (option) {\n          var selected = question.multi\n            ? Array.isArray(answer) && answer.indexOf(option.value) !== -1\n            : answer === option.value;\n          html += '<button type=\"button\" class=\"mtvat-option' + (question.multi ? ' is-multi' : '') + (selected ? ' is-selected' : '') + '\" data-option=\"' + escapeAttr(option.value) + '\" aria-pressed=\"' + (selected ? 'true' : 'false') + '\">';\n          html += '<span class=\"mtvat-marker\" aria-hidden=\"true\"><\/span>';\n          html += '<span class=\"mtvat-opt-text\"><span class=\"mtvat-opt-title\">' + escapeHtml(option.label) + '<\/span>';\n          if (option.detail) html += '<span class=\"mtvat-opt-detail\">' + escapeHtml(option.detail) + '<\/span>';\n          html += '<\/span>';\n          html += '<\/button>';\n        });\n        html += '<\/div>';\n        els.questionBody.innerHTML = html;\n        saveState();\n      }\n\n      function chooseOption(optionValue) {\n        var questions = activeQuestions();\n        var question = questions[state.stepIndex];\n        if (!question) return;\n\n        if (question.multi) {\n          var current = Array.isArray(state.answers[question.id]) ? state.answers[question.id].slice() : [];\n          var selected = current.indexOf(optionValue) !== -1;\n          if (selected) {\n            current = current.filter(function (item) { return item !== optionValue; });\n          } else if (question.exclusive && question.exclusive.indexOf(optionValue) !== -1) {\n            current = [optionValue];\n          } else {\n            if (question.exclusive) {\n              current = current.filter(function (item) { return question.exclusive.indexOf(item) === -1; });\n            }\n            current.push(optionValue);\n          }\n          state.answers[question.id] = current;\n        } else {\n          state.answers[question.id] = optionValue;\n        }\n\n        renderQuestion();\n      }\n\n      function nextStep() {\n        var questions = activeQuestions();\n        var question = questions[state.stepIndex];\n        if (!question || !hasAnswer(question, state.answers[question.id])) return;\n        if (state.stepIndex >= questions.length - 1) {\n          if (state.formSubmitted) renderResult();\n          else prepareLeadStep();\n          return;\n        }\n        state.stepIndex += 1;\n        renderQuestion();\n      }\n\n      function prevStep() {\n        if (state.stepIndex <= 0) return;\n        state.stepIndex -= 1;\n        renderQuestion();\n      }\n\n      function renderSummaryCell(label, value) {\n        return '<div class=\"mtvat-summary-cell\"><div class=\"mtvat-summary-label\">' + escapeHtml(label) + '<\/div><div class=\"mtvat-summary-value\">' + escapeHtml(value || 'Sin dato') + '<\/div><\/div>';\n      }\n\n      function renderResult() {\n        pruneInactiveAnswers();\n        var diagnosis = buildDiagnosis();\n        var answers = state.answers;\n        state.resultUnlocked = true;\n        showOnly('result');\n        els.resultPill.textContent = 'Tu recomendaci\u00f3n';\n        els.resultTitle.textContent = diagnosis.title;\n        els.resultDesc.textContent = diagnosis.desc;\n        var summary = [\n          renderSummaryCell('Qu\u00e9 vendes', labelFor('tipo_venta', answers.tipo_venta)),\n          renderSummaryCell('Clientes', labelFor('tipo_cliente', answers.tipo_cliente)),\n          renderSummaryCell('IVA UE actual', labelFor('iva_ue', answers.iva_ue)),\n          renderSummaryCell('Alcance UE', labelFor('destinos', answers.destinos))\n        ];\n        if (hasSelected(answers.tipo_venta, 'productos')) {\n          summary.push(renderSummaryCell('Producto antes de vender', labelFor('ubicacion_productos', answers.ubicacion_productos)));\n        }\n        if (answers.valor_importacion) {\n          summary.push(renderSummaryCell('Pedido importado', labelFor('valor_importacion', answers.valor_importacion)));\n        }\n        els.resultSummary.innerHTML = summary.join('');\n        els.resultActions.innerHTML = resultActionsFor(diagnosis.main, answers).map(function (action) {\n          return '<li>' + escapeHtml(action) + '<\/li>';\n        }).join('');\n      }\n\n      function restart() {\n        state.phase = 'quiz';\n        state.stepIndex = 0;\n        state.answers = {};\n        state.formSubmitted = false;\n        state.resultUnlocked = false;\n        state.hubspotForm = null;\n        saveState();\n        window.location.reload();\n      }\n\n      function bindHubspotEvents() {\n        window.addEventListener('hs-form-event:on-ready', async function (event) {\n          if (!hubspotEventMatches(event)) return;\n          state.hubspotForm = hubspotFormFromEvent(event);\n          if (state.formSubmitted) {\n            updateHubspotStatus('Tus respuestas ya est\u00e1n vinculadas al formulario.', false);\n            return;\n          }\n          if (state.phase === 'lead' && await syncHubspotHiddenFields(state.hubspotForm)) {\n            updateHubspotStatus('Tus respuestas ya est\u00e1n vinculadas al formulario.', false);\n          }\n        });\n\n        window.addEventListener('hs-form-event:on-submission:success', function (event) {\n          if (!hubspotEventMatches(event)) return;\n          state.formSubmitted = true;\n          state.hubspotForm = null;\n          renderResult();\n        });\n\n        window.addEventListener('hs-form-event:on-submission:failed', function (event) {\n          if (!hubspotEventMatches(event)) return;\n          updateHubspotStatus('No se pudo enviar el formulario. Revisa los campos e int\u00e9ntalo de nuevo.', true);\n        });\n      }\n\n      function bindEvents() {\n        els.questionBody.addEventListener('click', function (event) {\n          var option = event.target.closest('[data-option]');\n          if (!option || !els.questionBody.contains(option)) return;\n          chooseOption(option.getAttribute('data-option'));\n        });\n        els.nextBtn.addEventListener('click', nextStep);\n        els.backBtn.addEventListener('click', prevStep);\n        els.leadBackBtn.addEventListener('click', function () {\n          showOnly('quiz');\n          renderQuestion();\n        });\n        els.restartBtn.addEventListener('click', restart);\n        els.stepNav.addEventListener('click', function (event) {\n          var tab = event.target.closest('[data-question-step], [data-phase-step]');\n          if (!tab || !els.stepNav.contains(tab)) return;\n          if (tab.hasAttribute('data-question-step')) {\n            state.stepIndex = Number(tab.getAttribute('data-question-step'));\n            showOnly('quiz');\n            renderQuestion();\n            return;\n          }\n          var phase = tab.getAttribute('data-phase-step');\n          if (phase === 'lead' && canOpenLeadStep() && !state.formSubmitted) {\n            prepareLeadStep();\n            return;\n          }\n          if (phase === 'result' && state.resultUnlocked) {\n            renderResult();\n          }\n        });\n      }\n\n      bindHubspotEvents();\n      bindEvents();\n      if (restoreState()) {\n        if (state.phase === 'result') {\n          renderResult();\n        } else if (state.phase === 'lead') {\n          prepareLeadStep();\n        } else {\n          showOnly('quiz');\n          renderQuestion();\n        }\n      } else {\n        showOnly('quiz');\n        renderQuestion();\n      }\n    })();\n  <\/script>\n  <script src=\"https:\/\/js.hsforms.net\/forms\/embed\/20760506.js\" defer><\/script>\n<\/div>\n\n\n<style id=\"muay-v2-design-system\">\n\/* Muay Tax calculators v2 - shared visual system and cleanup layer. *\/\n:where(.calc-wrapper, .quota-widget, .iva-muay-widget, .renta-calc, .gp-hero-wrap, .gp-calc, #mt-vat-registration-form, #mt-amazon-diagnostic-form, #mt-amazon-diagnostico-elementor, .seo-wrap-hero, .seo-wrap-content, .seo-wrap-faq, .muay-v2-doc, .muay-v2-doc main) {\n  --mt-v2-primary: #00ad65;\n  --mt-v2-primary-soft: #e8fbf2;\n  --mt-v2-navy: #031549;\n  --mt-v2-blue: #0083e3;\n  --mt-v2-ink: #0e1433;\n  --mt-v2-muted: #5b6380;\n  --mt-v2-bg: #f7faff;\n  --mt-v2-surface: #ffffff;\n  --mt-v2-border: #e5ecf7;\n  --mt-v2-border-strong: #91abbc;\n  --mt-v2-danger: #e0364c;\n  --mt-v2-warning: #f2a12b;\n  --mt-v2-radius: 8px;\n  --mt-v2-radius-sm: 6px;\n  --calc-primary: var(--mt-v2-primary); --calc-primary-soft: var(--mt-v2-primary-soft); --calc-primary-light: var(--mt-v2-primary-soft); --calc-navy: var(--mt-v2-navy); --calc-muted: var(--mt-v2-muted); --calc-border: var(--mt-v2-border); --calc-border-soft: var(--mt-v2-bg); --calc-border-mid: var(--mt-v2-border-strong); --calc-bg: var(--mt-v2-bg); --calc-white: var(--mt-v2-surface); --calc-danger: var(--mt-v2-danger); --calc-radius: var(--mt-v2-radius); --calc-radius-sm: var(--mt-v2-radius-sm);\n  --rc-primary: var(--mt-v2-primary); --rc-primary-dark: var(--mt-v2-navy); --rc-navy: var(--mt-v2-navy); --rc-muted: var(--mt-v2-muted); --rc-border: var(--mt-v2-border); --rc-border-mid: var(--mt-v2-border-strong); --rc-bg: var(--mt-v2-bg); --rc-white: var(--mt-v2-surface); --rc-danger: var(--mt-v2-danger); --rc-blue: var(--mt-v2-blue); --rc-radius: var(--mt-v2-radius); --rc-radius-sm: var(--mt-v2-radius-sm);\n  --gp-primary: var(--mt-v2-primary); --gp-navy: var(--mt-v2-navy); --gp-blue: var(--mt-v2-blue); --gp-bg: var(--mt-v2-bg); --gp-soft: var(--mt-v2-primary-soft); --gp-info: #e9f5ff; --gp-border: var(--mt-v2-border); --gp-border-soft: var(--mt-v2-bg); --gp-border-strong: var(--mt-v2-border-strong); --gp-muted: var(--mt-v2-muted); --gp-danger: var(--mt-v2-danger); --gp-warning: var(--mt-v2-warning); --gp-white: var(--mt-v2-surface); --gp-radius: var(--mt-v2-radius); --gp-radius-sm: var(--mt-v2-radius-sm);\n  --seo-primary: var(--mt-v2-primary); --seo-primary-bg: var(--mt-v2-primary-soft); --seo-navy: var(--mt-v2-navy); --seo-muted: var(--mt-v2-muted); --seo-border: var(--mt-v2-border); --seo-bg: var(--mt-v2-bg); --seo-white: var(--mt-v2-surface); --seo-radius: var(--mt-v2-radius); --seo-radius-sm: var(--mt-v2-radius-sm);\n  --mtvat-green: var(--mt-v2-primary); --mtvat-green-dark: #008f54; --mtvat-green-soft: var(--mt-v2-primary-soft); --mtvat-navy: var(--mt-v2-navy); --mtvat-ink: var(--mt-v2-ink); --mtvat-muted: var(--mt-v2-muted); --mtvat-line: var(--mt-v2-border); --mtvat-paper: var(--mt-v2-bg); --mtvat-white: var(--mt-v2-surface); --mtvat-blue: var(--mt-v2-blue); --mtvat-blue-soft: #e9f5ff; --mtvat-danger: var(--mt-v2-danger); --mtvat-radius: var(--mt-v2-radius); --mtvat-radius-sm: var(--mt-v2-radius-sm);\n  --mtaz-green: var(--mt-v2-primary); --mtaz-green-dark: #008f54; --mtaz-green-soft: var(--mt-v2-primary-soft); --mtaz-navy: var(--mt-v2-navy); --mtaz-navy-soft: #10235f; --mtaz-ink: var(--mt-v2-ink); --mtaz-muted: var(--mt-v2-muted); --mtaz-line: var(--mt-v2-border); --mtaz-paper: var(--mt-v2-bg); --mtaz-white: var(--mt-v2-surface); --mtaz-radius: var(--mt-v2-radius);\n  --mt-green: var(--mt-v2-primary); --mt-green-600: #008f54; --mt-green-400: #36e093; --mt-green-300: #8ce8bd; --mt-mint: var(--mt-v2-primary-soft); --mt-mint-50: var(--mt-v2-bg); --mt-navy: var(--mt-v2-navy); --mt-navy-700: #10235f; --mt-ink: var(--mt-v2-ink); --mt-muted: var(--mt-v2-muted); --mt-line: var(--mt-v2-border); --mt-paper: var(--mt-v2-bg); --mt-white: var(--mt-v2-surface);\n  font-family: Poppins, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif !important;\n  color: var(--mt-v2-navy);\n  max-width: 100%;\n  overflow-wrap: break-word;\n}\n:where(.calc-wrapper, .quota-widget, .iva-muay-widget, .renta-calc, .gp-hero-wrap, .gp-calc, #mt-vat-registration-form, #mt-amazon-diagnostic-form, #mt-amazon-diagnostico-elementor, .seo-wrap-hero, .seo-wrap-content, .seo-wrap-faq, .muay-v2-doc, .muay-v2-doc main) *, :where(.calc-wrapper, .quota-widget, .iva-muay-widget, .renta-calc, .gp-hero-wrap, .gp-calc, #mt-vat-registration-form, #mt-amazon-diagnostic-form, #mt-amazon-diagnostico-elementor, .seo-wrap-hero, .seo-wrap-content, .seo-wrap-faq, .muay-v2-doc, .muay-v2-doc main) *::before, :where(.calc-wrapper, .quota-widget, .iva-muay-widget, .renta-calc, .gp-hero-wrap, .gp-calc, #mt-vat-registration-form, #mt-amazon-diagnostic-form, #mt-amazon-diagnostico-elementor, .seo-wrap-hero, .seo-wrap-content, .seo-wrap-faq, .muay-v2-doc, .muay-v2-doc main) *::after { box-sizing: border-box; letter-spacing: 0 !important; }\n:where(.calc-wrapper, .quota-widget, .iva-muay-widget, .renta-calc, .gp-hero-wrap, .gp-calc, #mt-vat-registration-form, #mt-amazon-diagnostic-form, #mt-amazon-diagnostico-elementor, .seo-wrap-hero, .seo-wrap-content, .seo-wrap-faq, .muay-v2-doc, .muay-v2-doc main) :is(h1, h2, h3, .calc-title-standalone, .rc-title, .gp-title, .gp-hero-title, .mtvat-title, .mtaz-title, .mt-h1, .mt-h2, .seo-faq-section-title, .seo-section-title) { color: var(--mt-v2-navy) !important; font-weight: 800 !important; line-height: 1.18 !important; text-wrap: balance; }\n:where(.calc-wrapper, .quota-widget, .iva-muay-widget, .renta-calc, .gp-hero-wrap, .gp-calc, #mt-vat-registration-form, #mt-amazon-diagnostic-form, #mt-amazon-diagnostico-elementor, .seo-wrap-hero, .seo-wrap-content, .seo-wrap-faq, .muay-v2-doc, .muay-v2-doc main) :is(h1, .gp-hero-title, .seo-hero h1, .mt-h1) { font-size: 2.35rem !important; }\n:where(.calc-wrapper, .quota-widget, .iva-muay-widget, .renta-calc, .gp-hero-wrap, .gp-calc, #mt-vat-registration-form, #mt-amazon-diagnostic-form, #mt-amazon-diagnostico-elementor, .seo-wrap-hero, .seo-wrap-content, .seo-wrap-faq, .muay-v2-doc, .muay-v2-doc main) :is(.calc-header, .rc-header, .calc-panel, .rc-panel, .gp-panel, .mtvat-card, .mtaz-card, .seo-card, .seo-example-box, .calc-metric-card, .gp-card, .card, #uploadCard, .mt-hero-card, .mt-risk-card, .mt-trust-card) { border: 1px solid var(--mt-v2-border) !important; border-radius: var(--mt-v2-radius) !important; box-shadow: none !important; }\n:where(.calc-wrapper, .quota-widget, .iva-muay-widget, .renta-calc, .gp-hero-wrap, .gp-calc, #mt-vat-registration-form, #mt-amazon-diagnostic-form, #mt-amazon-diagnostico-elementor, .seo-wrap-hero, .seo-wrap-content, .seo-wrap-faq, .muay-v2-doc, .muay-v2-doc main) :is(input, select, textarea) { min-height: 42px; border: 1px solid var(--mt-v2-border-strong) !important; border-radius: var(--mt-v2-radius-sm) !important; background: var(--mt-v2-surface) !important; }\n:where(.calc-wrapper, .quota-widget, .iva-muay-widget, .renta-calc, .gp-hero-wrap, .gp-calc, #mt-vat-registration-form, #mt-amazon-diagnostic-form, #mt-amazon-diagnostico-elementor, .seo-wrap-hero, .seo-wrap-content, .seo-wrap-faq, .muay-v2-doc, .muay-v2-doc main) :is(button, .calc-btn, .rc-btn, .gp-btn, .mtvat-btn, .mtaz-btn, .btn, .btn-sm, .calc-btn-big, .rc-btn-big, .seo-cta-btn-content, .mt-btn, .mt-btn-pill) { border-radius: var(--mt-v2-radius) !important; min-height: 44px; font-weight: 700 !important; box-shadow: none !important; }\n:where(.calc-wrapper, .quota-widget, .iva-muay-widget, .renta-calc, .gp-calc, .muay-v2-doc) :is(.calc-steps-nav, .rc-steps-nav, .gp-steps-nav) { gap: 4px !important; padding: 4px !important; border: 1px solid var(--mt-v2-border) !important; border-radius: var(--mt-v2-radius) !important; background: var(--mt-v2-surface) !important; }\n:where(.calc-wrapper, .quota-widget, .renta-calc, .gp-calc) :is(.calc-step-tab, .rc-step-tab, .gp-step-tab) { border-radius: var(--mt-v2-radius-sm) !important; min-height: 40px !important; }\n:where(.calc-wrapper, .quota-widget, .renta-calc, .gp-calc) :is(.calc-step-tab.active, .calc-step-tab.done, .rc-step-tab.active, .rc-step-tab.done, .gp-step-tab.active, .gp-step-tab.done) { background: var(--mt-v2-primary-soft) !important; color: var(--mt-v2-primary) !important; }\n:where(.calc-wrapper, .quota-widget, .iva-muay-widget, .renta-calc, .gp-calc, #mt-vat-registration-form, #mt-amazon-diagnostic-form, #mt-amazon-diagnostico-elementor) :is(.calc-choice, .rc-choice, .gp-choice, .gp-source-check, .gp-mode-btn, .gp-switch-card, .calc-radio-card, .mtvat-option, .mtaz-option, .calc-op-card) { border-radius: var(--mt-v2-radius) !important; border: 1px solid var(--mt-v2-border) !important; }\n:where(#mt-vat-registration-form, #mt-amazon-diagnostic-form) :is(.mtvat-progress-track, .mtaz-progress-track) { background: #eef3fa !important; border-radius: 999px !important; }\n:where(#mt-vat-registration-form, #mt-amazon-diagnostic-form) :is(.mtvat-progress-bar, .mtaz-progress-bar) { background: var(--mt-v2-primary) !important; }\n:where(.calc-wrapper, .quota-widget, .iva-muay-widget, .renta-calc, .gp-calc, #mt-vat-registration-form, #mt-amazon-diagnostic-form, #mt-amazon-diagnostico-elementor) :is(.calc-result-hero, .rc-result-hero, .gp-result-hero, .mtvat-result-hero, .mtaz-result-hero) { border-radius: var(--mt-v2-radius) !important; box-shadow: none !important; }\n.renta-calc .rc-result-hero.devolver { background: var(--mt-v2-primary) !important; }\n.renta-calc .rc-result-hero.pagar { background: var(--mt-v2-navy) !important; }\n.renta-calc .rc-result-hero.cero { background: var(--mt-v2-border-strong) !important; }\n.seo-wrap-hero .seo-hero-lead { margin: 0 auto 28px !important; }\n.seo-wrap-content .seo-cta-box::before, #mt-amazon-diagnostico-elementor .mt-hero-bg, #mt-amazon-diagnostico-elementor .calc-result-hero::before, #mt-amazon-diagnostico-elementor .mt-final::before, #mt-amazon-diagnostico-elementor .mt-final::after { display: none !important; }\n#mt-amazon-diagnostico-elementor .mt-hero { background: var(--mt-v2-bg) !important; }\n#mt-amazon-diagnostico-elementor .mt-final { background: var(--mt-v2-navy) !important; }\n#mt-amazon-diagnostico-elementor .mt-page { max-width: 100%; overflow-x: hidden; }\n#mt-amazon-diagnostico-elementor[data-muay-v2] { width: 100% !important; max-width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; }\n@media (max-width: 680px) {\n  :where(.calc-wrapper, .quota-widget, .iva-muay-widget, .renta-calc, .gp-hero-wrap, .gp-calc, #mt-vat-registration-form, #mt-amazon-diagnostic-form, #mt-amazon-diagnostico-elementor, .seo-wrap-hero, .seo-wrap-content, .seo-wrap-faq, .muay-v2-doc, .muay-v2-doc main) :is(h1, .gp-hero-title, .seo-hero h1, .mt-h1) { font-size: 1.75rem !important; }\n  :where(.calc-wrapper, .quota-widget, .iva-muay-widget, .renta-calc, .gp-hero-wrap, .gp-calc, #mt-vat-registration-form, #mt-amazon-diagnostic-form, #mt-amazon-diagnostico-elementor, .seo-wrap-hero, .seo-wrap-content, .seo-wrap-faq, .muay-v2-doc, .muay-v2-doc main) :is(.calc-title-standalone, .rc-title, .gp-title, .mtvat-title, .mtaz-title) { font-size: 1.45rem !important; }\n  :where(.calc-wrapper, .quota-widget, .iva-muay-widget, .renta-calc, .gp-hero-wrap, .gp-calc, #mt-vat-registration-form, #mt-amazon-diagnostic-form, #mt-amazon-diagnostico-elementor, .seo-wrap-hero, .seo-wrap-content, .seo-wrap-faq, .muay-v2-doc, .muay-v2-doc main) :is(.calc-btn, .rc-btn, .gp-btn, .mtvat-btn, .mtaz-btn, button) { width: 100%; }\n}\n<\/style>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4e7372f elementor-widget elementor-widget-text-editor\" data-id=\"4e7372f\" 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><span style=\"font-family: Poppins, sans-serif; font-size: 36px; font-style: inherit; font-weight: bold;\">As\u00ed funciona la herramienta para saber si necesitas el IVA en la UE<\/span><\/h2><p>Responde a unas pocas preguntas sobre tu negocio: qu\u00e9 vendes, en qu\u00e9 pa\u00edses operas o piensas operar, y c\u00f3mo gestionas el env\u00edo de tus productos. No hace falta que tengas cifras exactas, con una estimaci\u00f3n es suficiente. Al terminar, ver\u00e1s un resultado preparado seg\u00fan tus respuestas.<\/p><p>Este diagn\u00f3stico es un primer filtro, no una revisi\u00f3n fiscal completa. Te da una orientaci\u00f3n clara para saber si tu situaci\u00f3n necesita alg\u00fan tr\u00e1mite adicional, y en qu\u00e9 orden conviene resolverlo.<\/p><h2>Qu\u00e9 significa cada resultado que puedes obtener<\/h2><ul><li><strong>No necesitas un n\u00famero de IVA adicional por ahora.<\/strong> Si tu operativa no supera los umbrales aplicables ni implica registros en otros pa\u00edses, puedes seguir facturando como hasta ahora, sin ning\u00fan tr\u00e1mite nuevo.<\/li><li><strong>Necesitas registrarte en otro pa\u00eds o acogerte a la ventanilla \u00fanica.<\/strong> A partir de cierto volumen de ventas a particulares de la Uni\u00f3n Europea, debes aplicar el IVA de cada pa\u00eds de destino. Puedes hacerlo registr\u00e1ndote pa\u00eds por pa\u00eds, o centralizando la declaraci\u00f3n con el r\u00e9gimen de la Uni\u00f3n (OSS) desde Espa\u00f1a.<\/li><li><strong>Tu caso necesita revisi\u00f3n.<\/strong> Si vendes a trav\u00e9s de una plataforma que gestiona el IVA en tu nombre, comercializas productos con impuestos especiales, almacenas stock en otro pa\u00eds, o prestas servicios con reglas particulares, tu situaci\u00f3n tiene matices que conviene revisar de forma individual.<\/li><\/ul><p>En los tres casos, el resultado es orientativo. Conf\u00edrmalo siempre antes de tomar decisiones sobre tu operativa, especialmente si est\u00e1s valorando activar nuevos canales de venta.<\/p><h2>Errores frecuentes al valorar si necesitas un n\u00famero de IVA<\/h2><ul><li>Pensar que no superar el umbral de 10.000 \u20ac significa que nunca necesitar\u00e1s un n\u00famero de IVA en otro pa\u00eds: el almacenamiento de stock genera esta obligaci\u00f3n al margen del umbral.<\/li><li>Activar programas log\u00edsticos como el Paneuropeo de Amazon sin saber que implica darte de alta en cada pa\u00eds donde se guarda tu inventario.<\/li><li>Esperar a que un proveedor o un marketplace te lo reclame para empezar a revisar tu situaci\u00f3n.<\/li><\/ul><h2>Cu\u00e1ndo conviene revisar tu caso con un gestor fiscal<\/h2><p>Si tu negocio combina ventas a distancia con almacenamiento en otros pa\u00edses, si usas programas log\u00edsticos de un marketplace, o si ya tienes indicios de haber superado alg\u00fan umbral sin haberte dado de alta, conviene revisar tu caso antes de seguir operando.<\/p><p>Evita errores antes de que un marketplace o una administraci\u00f3n tributaria detecte una obligaci\u00f3n pendiente: revisa tu situaci\u00f3n con nuestro equipo.<\/p><p>Esta comprobaci\u00f3n te da una primera orientaci\u00f3n clara. Para confirmar qu\u00e9 n\u00fameros de IVA necesitas y gestionar el alta correspondiente sin errores, habla con nuestro equipo de IVA.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a19ad27 elementor-cta--layout-image-left elementor-cta--mobile-layout-image-below elementor-cta--skin-classic elementor-animated-content elementor-widget elementor-widget-call-to-action\" data-id=\"a19ad27\" 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\/2025\/05\/Img-iva.png);\" role=\"img\" aria-label=\"Img iva\"><\/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<span class=\"elementor-cta__title elementor-cta__content-item elementor-content-item\">\n\t\t\t\t\t\tYa tienes el diagn\u00f3stico. Nosotros hacemos el resto\t\t\t\t\t<\/span>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-cta__description elementor-cta__content-item elementor-content-item\">\n\t\t\t\t\t\tEn Muay Tax nos encargamos de tu alta, tu declaraci\u00f3n y tu IVA en cada pa\u00eds donde vendas, para que no tengas que gestionarlo t\u00fa.\t\t\t\t\t<\/div>\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\/iva\/\">\n\t\t\t\t\t\tGestionar mi IVA\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\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3004ebc e-flex e-con-boxed e-con e-parent\" data-id=\"3004ebc\" 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-c43cee7 e-con-full e-flex e-con e-child\" data-id=\"c43cee7\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-bb5dae7 e-con-full e-flex e-con e-child\" data-id=\"bb5dae7\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-410d86c elementor-widget elementor-widget-heading\" data-id=\"410d86c\" 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\">Otras calculadoras que te pueden interesar<\/h2>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-cd6849f e-con-full e-flex e-con e-child\" data-id=\"cd6849f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-0e171f0 e-con-full e-flex e-con e-child\" data-id=\"0e171f0\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4705d21 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=\"4705d21\" 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\/2025\/05\/Calculadora-a-03.jpg);\" role=\"img\" aria-label=\"Calculadora-a-03.jpg\"><\/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 aut\u00f3nomos\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-autonomo-avanzada\/\">\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-c4bb61e e-con-full e-flex e-con e-child\" data-id=\"c4bb61e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e923776 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=\"e923776\" 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\/2025\/05\/Calculadora-a-02.jpg);\" role=\"img\" aria-label=\"Calculadora-a-02.jpg\"><\/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 aut\u00f3nomo a SL\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-autonomo-empresa\/\">\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<\/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>Diagn\u00f3stico gratuito de IVA \u00bfNecesitas un n\u00famero de IVA en la UE? Cu\u00e9ntanos qu\u00e9 vas a vender, a qui\u00e9n y [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":0,"parent":1713,"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-63622","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/muaytax.com\/es\/wp-json\/wp\/v2\/pages\/63622","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=63622"}],"version-history":[{"count":32,"href":"https:\/\/muaytax.com\/es\/wp-json\/wp\/v2\/pages\/63622\/revisions"}],"predecessor-version":[{"id":66844,"href":"https:\/\/muaytax.com\/es\/wp-json\/wp\/v2\/pages\/63622\/revisions\/66844"}],"up":[{"embeddable":true,"href":"https:\/\/muaytax.com\/es\/wp-json\/wp\/v2\/pages\/1713"}],"wp:attachment":[{"href":"https:\/\/muaytax.com\/es\/wp-json\/wp\/v2\/media?parent=63622"}],"wp:term":[{"taxonomy":"tramite","embeddable":true,"href":"https:\/\/muaytax.com\/es\/wp-json\/wp\/v2\/tramite?post=63622"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}