{"id":14829,"date":"2026-10-06T10:55:44","date_gmt":"2026-10-06T08:55:44","guid":{"rendered":"https:\/\/basaburua.eus\/?page_id=14829"},"modified":"2026-10-06T10:57:21","modified_gmt":"2026-10-06T08:57:21","slug":"ejercicio-de-derechos-arsol","status":"publish","type":"page","link":"https:\/\/basaburua.eus\/es\/ejercicio-de-derechos-arsol\/","title":{"rendered":"Ejercicio de derechos ArSol"},"content":{"rendered":"<section class=\"l-section wpb_row height_medium\"><div class=\"l-section-h i-cf\"><div class=\"g-cols vc_row via_grid cols_1 laptops-cols_inherit tablets-cols_inherit mobiles-cols_1 valign_top type_default stacking_default\"><div class=\"wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"w-html\"><section class=\"gfm-arsol\" data-gfm-arsol>\n  <div class=\"gfm-arsol__intro\">\n    <p>\n      En <strong data-arsol-client-name>[nombre_cliente]<\/strong> protegemos tus datos personales y,\n      en cumplimiento del Reglamento (UE) 2016\/679 (RGPD) y la Ley Org\u00e1nica 3\/2018\n      (LOPDGDD), facilitamos el ejercicio de tus derechos.\n    <\/p>\n\n    <ul>\n      <li><strong>Acceso:<\/strong> saber si tratamos tus datos y consultar cu\u00e1les.<\/li>\n      <li><strong>Rectificaci\u00f3n:<\/strong> corregir datos inexactos o incompletos.<\/li>\n      <li><strong>Supresi\u00f3n:<\/strong> solicitar la eliminaci\u00f3n de tus datos cuando proceda.<\/li>\n      <li><strong>Limitaci\u00f3n:<\/strong> restringir temporalmente el tratamiento en determinados supuestos.<\/li>\n      <li><strong>Oposici\u00f3n:<\/strong> oponerte al tratamiento en determinadas circunstancias.<\/li>\n      <li><strong>Portabilidad:<\/strong> recibir tus datos o solicitar su traslado a otro responsable.<\/li>\n      <li><strong>Revocaci\u00f3n:<\/strong> retirar el consentimiento otorgado.<\/li>\n    <\/ul>\n\n    <p>\n      Para ejercer cualquiera de estos derechos, completa el siguiente formulario. Si no quedas\n      satisfecho con la respuesta, puedes presentar una reclamaci\u00f3n ante la\n      <a href=\"https:\/\/www.aepd.es\/\" target=\"_blank\" rel=\"noopener noreferrer\">Agencia Espa\u00f1ola de Protecci\u00f3n de Datos<\/a>.\n    <\/p>\n  <\/div>\n\n  <form class=\"gfm-arsol__form\" data-arsol-form novalidate>\n    <div class=\"gfm-arsol__grid\">\n      <div class=\"gfm-arsol__field\">\n        <label for=\"arsol-nombre\">Nombre <span aria-hidden=\"true\">*<\/span><\/label>\n        <input id=\"arsol-nombre\" name=\"nombre\" type=\"text\" autocomplete=\"given-name\" maxlength=\"200\" required>\n      <\/div>\n\n      <div class=\"gfm-arsol__field\">\n        <label for=\"arsol-apellido\">Primer apellido <span aria-hidden=\"true\">*<\/span><\/label>\n        <input id=\"arsol-apellido\" name=\"apellido\" type=\"text\" autocomplete=\"family-name\" maxlength=\"200\" required>\n      <\/div>\n\n      <div class=\"gfm-arsol__field\">\n        <label for=\"arsol-apellido2\">Segundo apellido<\/label>\n        <input id=\"arsol-apellido2\" name=\"apellido2\" type=\"text\" maxlength=\"200\">\n      <\/div>\n\n      <div class=\"gfm-arsol__field\">\n        <label for=\"arsol-dni\">DNI \/ NIE <span aria-hidden=\"true\">*<\/span><\/label>\n        <input id=\"arsol-dni\" name=\"dni\" type=\"text\" autocomplete=\"off\" maxlength=\"20\" required>\n      <\/div>\n\n      <div class=\"gfm-arsol__field\">\n        <label for=\"arsol-email\">Correo electr\u00f3nico <span aria-hidden=\"true\">*<\/span><\/label>\n        <input id=\"arsol-email\" name=\"email\" type=\"email\" autocomplete=\"email\" maxlength=\"320\" required>\n      <\/div>\n\n      <div class=\"gfm-arsol__field\">\n        <label for=\"arsol-movil\">M\u00f3vil <span aria-hidden=\"true\">*<\/span><\/label>\n        <input id=\"arsol-movil\" name=\"movil\" type=\"tel\" autocomplete=\"tel\" maxlength=\"30\" required>\n      <\/div>\n    <\/div>\n\n    <label class=\"gfm-arsol__toggle\">\n      <input type=\"checkbox\" data-arsol-minor-toggle>\n      <span>Act\u00fao en representaci\u00f3n de un menor de edad<\/span>\n    <\/label>\n\n    <fieldset class=\"gfm-arsol__fieldset\" data-arsol-minor hidden>\n      <legend>Datos del menor representado<\/legend>\n      <div class=\"gfm-arsol__grid\">\n        <div class=\"gfm-arsol__field\">\n          <label for=\"arsol-menor-nombre\">Nombre del menor <span aria-hidden=\"true\">*<\/span><\/label>\n          <input id=\"arsol-menor-nombre\" name=\"menorNombre\" type=\"text\" maxlength=\"200\">\n        <\/div>\n\n        <div class=\"gfm-arsol__field\">\n          <label for=\"arsol-menor-apellido\">Primer apellido del menor <span aria-hidden=\"true\">*<\/span><\/label>\n          <input id=\"arsol-menor-apellido\" name=\"menorApellido\" type=\"text\" maxlength=\"200\">\n        <\/div>\n\n        <div class=\"gfm-arsol__field\">\n          <label for=\"arsol-menor-apellido2\">Segundo apellido del menor<\/label>\n          <input id=\"arsol-menor-apellido2\" name=\"menorApellido2\" type=\"text\" maxlength=\"200\">\n        <\/div>\n      <\/div>\n    <\/fieldset>\n\n    <div class=\"gfm-arsol__field\">\n      <label for=\"arsol-derecho\">Derecho que desea ejercer <span aria-hidden=\"true\">*<\/span><\/label>\n      <select id=\"arsol-derecho\" name=\"derecho\" required>\n        <option value=\"\">Selecciona un derecho<\/option>\n        <option value=\"acceso\">Acceso<\/option>\n        <option value=\"rectificacion\">Rectificaci\u00f3n<\/option>\n        <option value=\"supresion\">Supresi\u00f3n<\/option>\n        <option value=\"limitacion\">Limitaci\u00f3n del tratamiento<\/option>\n        <option value=\"oposicion\">Oposici\u00f3n<\/option>\n        <option value=\"portabilidad\">Portabilidad<\/option>\n        <option value=\"revocacion\">Revocaci\u00f3n del consentimiento<\/option>\n      <\/select>\n    <\/div>\n\n    <div class=\"gfm-arsol__field\">\n      <label for=\"arsol-mensaje\">Mensaje<\/label>\n      <textarea id=\"arsol-mensaje\" name=\"mensaje\" rows=\"5\" maxlength=\"5000\"><\/textarea>\n    <\/div>\n\n    <fieldset class=\"gfm-arsol__fieldset\" data-arsol-objections hidden>\n      <legend>Oposiciones o retiradas espec\u00edficas<\/legend>\n\n      <div class=\"gfm-arsol__checks\">\n        <label><input type=\"checkbox\" name=\"noAutorizoEnvioComunicaciones\"> <span>No autorizo el env\u00edo de comunicaciones comerciales.<\/span><\/label>\n        <label><input type=\"checkbox\" name=\"noAutorizoEnvioComunicacionesMensajeriaInstantanea\"> <span>No autorizo comunicaciones mediante SMS, WhatsApp u otros sistemas de mensajer\u00eda.<\/span><\/label>\n        <label><input type=\"checkbox\" name=\"noAutorizoPublicacionImagenesWeb\"> <span>No autorizo la publicaci\u00f3n de im\u00e1genes en la web, revistas u otros medios.<\/span><\/label>\n        <label><input type=\"checkbox\" name=\"noAutorizoPublicacionImagenesRedes\"> <span>No autorizo la publicaci\u00f3n de datos identificativos o im\u00e1genes en redes sociales.<\/span><\/label>\n        <label><input type=\"checkbox\" name=\"noAutorizoPublicacionIntranetCorporativa\"> <span>No autorizo la publicaci\u00f3n en la intranet corporativa.<\/span><\/label>\n        <label><input type=\"checkbox\" name=\"noAutorizoCesionTerceros\"> <span>No autorizo la cesi\u00f3n de datos a terceros.<\/span><\/label>\n        <label><input type=\"checkbox\" name=\"noAutorizoTratamientoDatosMenores\"> <span>No autorizo el tratamiento de datos de menores representados.<\/span><\/label>\n        <label><input type=\"checkbox\" name=\"noAutorizoTratamientoImagenesReconocimientoFacial\"> <span>No autorizo el tratamiento de im\u00e1genes para reconocimiento facial.<\/span><\/label>\n        <label><input type=\"checkbox\" name=\"noAutorizoTratamientoDatosBiometricos\"> <span>No autorizo el tratamiento de datos biom\u00e9tricos.<\/span><\/label>\n        <label><input type=\"checkbox\" name=\"noAutorizoTratamientoDatosSalud\"> <span>No autorizo el tratamiento de datos de salud.<\/span><\/label>\n        <label><input type=\"checkbox\" name=\"noAutorizoUtilizacionDatosPersonalesPolizasAnuladas\"> <span>No autorizo la utilizaci\u00f3n de datos personales de p\u00f3lizas anuladas.<\/span><\/label>\n      <\/div>\n\n      <div class=\"gfm-arsol__field\">\n        <label for=\"arsol-otros-derechos\">Otros derechos u observaciones<\/label>\n        <input id=\"arsol-otros-derechos\" name=\"otrosDerechos\" type=\"text\" maxlength=\"450\">\n      <\/div>\n    <\/fieldset>\n\n    <div class=\"gfm-arsol__status\" data-arsol-status role=\"status\" aria-live=\"polite\" hidden><\/div>\n\n    <button class=\"gfm-arsol__submit\" type=\"submit\" data-arsol-submit>\n      Enviar solicitud\n    <\/button>\n  <\/form>\n\n  <div class=\"gfm-arsol__success\" data-arsol-success hidden tabindex=\"-1\">\n    <h2>Solicitud enviada<\/h2>\n    <p>La solicitud se ha registrado correctamente.<\/p>\n  <\/div>\n\n  <div class=\"gfm-arsol__privacy\">\n    <h2>Informaci\u00f3n b\u00e1sica de protecci\u00f3n de datos<\/h2>\n    <dl>\n      <div><dt>Responsable<\/dt><dd data-arsol-client-name>[nombre_cliente]<\/dd><\/div>\n      <div><dt>Finalidad<\/dt><dd>Gestionar y atender el ejercicio de derechos sobre los datos personales facilitados por el interesado o su representante legal.<\/dd><\/div>\n      <div><dt>Legitimaci\u00f3n<\/dt><dd>Cumplimiento del Reglamento (UE) 2016\/679 y de la Ley Org\u00e1nica 3\/2018.<\/dd><\/div>\n      <div><dt>Conservaci\u00f3n<\/dt><dd>Durante el tiempo necesario para atender la solicitud y cumplir las obligaciones legales aplicables.<\/dd><\/div>\n      <div><dt>Derechos<\/dt><dd>Acceso, rectificaci\u00f3n, supresi\u00f3n, limitaci\u00f3n, oposici\u00f3n, portabilidad y retirada del consentimiento.<\/dd><\/div>\n      <div><dt>Informaci\u00f3n adicional<\/dt><dd>Consulta la <a data-arsol-privacy-link href=\"#\" target=\"_blank\" rel=\"noopener noreferrer\">pol\u00edtica de privacidad<\/a> o contacta en <a data-arsol-email-link href=\"mailto:[mail_empresa]\">[mail_empresa]<\/a>.<\/dd><\/div>\n    <\/dl>\n  <\/div>\n<\/section>\n\n<style>\n  .gfm-arsol {\n    --arsol-primary: #0038e7;\n    --arsol-primary-hover: #002bb5;\n    --arsol-submit: #07133d;\n    --arsol-submit-hover: #101f52;\n    --arsol-text: #1f2937;\n    --arsol-muted: #6b7280;\n    --arsol-border: #d1d5db;\n    --arsol-surface: #ffffff;\n    --arsol-soft: #f8fafc;\n    --arsol-error: #b42318;\n    --arsol-error-bg: #fef3f2;\n    --arsol-success: #067647;\n    --arsol-success-bg: #ecfdf3;\n    width: 100%;\n    max-width: 920px;\n    margin: 0 auto;\n    color: var(--arsol-text);\n    font-family: Arial, Helvetica, sans-serif;\n    line-height: 1.5;\n  }\n\n  .gfm-arsol,\n  .gfm-arsol *,\n  .gfm-arsol *::before,\n  .gfm-arsol *::after {\n    box-sizing: border-box !important;\n  }\n\n  .gfm-arsol {\n    isolation: isolate;\n    text-align: left !important;\n    font-style: normal !important;\n    font-weight: 400;\n    letter-spacing: normal !important;\n    text-transform: none !important;\n  }\n\n  .gfm-arsol button,\n  .gfm-arsol input,\n  .gfm-arsol select,\n  .gfm-arsol textarea {\n    font-family: Arial, Helvetica, sans-serif !important;\n    letter-spacing: normal !important;\n    text-transform: none !important;\n    box-shadow: none;\n    filter: none !important;\n  }\n\n  .gfm-arsol__intro,\n  .gfm-arsol__form,\n  .gfm-arsol__privacy,\n  .gfm-arsol__success {\n    background: var(--arsol-surface);\n    border: 1px solid var(--arsol-border);\n    border-radius: 12px;\n    padding: 24px;\n  }\n\n  .gfm-arsol__intro,\n  .gfm-arsol__form,\n  .gfm-arsol__success {\n    margin-bottom: 24px;\n  }\n\n  .gfm-arsol__intro p:first-child {\n    margin-top: 0;\n  }\n\n  .gfm-arsol__intro p:last-child {\n    margin-bottom: 0;\n  }\n\n  .gfm-arsol__intro ul {\n    margin: 16px 0;\n    padding-left: 24px;\n  }\n\n  .gfm-arsol a {\n    color: var(--arsol-primary);\n  }\n\n  .gfm-arsol__grid {\n    display: grid;\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n    column-gap: 18px;\n    row-gap: 14px;\n    margin: 0 0 14px !important;\n    padding: 0 !important;\n  }\n\n  .gfm-arsol__field {\n    margin: 0 0 14px !important;\n    padding: 0 !important;\n  }\n\n  .gfm-arsol__grid > .gfm-arsol__field {\n    margin: 0 !important;\n  }\n\n  .gfm-arsol__field label,\n  .gfm-arsol__fieldset legend {\n    display: block;\n    margin: 0 0 6px !important;\n    padding: 0 !important;\n    font-size: 14px;\n    font-weight: 700;\n    line-height: 1.3;\n  }\n\n  .gfm-arsol__field input,\n  .gfm-arsol__field select,\n  .gfm-arsol__field textarea {\n    display: block !important;\n    width: 100% !important;\n    max-width: none !important;\n    min-height: 46px !important;\n    margin: 0 !important;\n    padding: 10px 12px !important;\n    border: 1px solid var(--arsol-border) !important;\n    border-radius: 8px !important;\n    background-color: var(--arsol-surface) !important;\n    background-image: none !important;\n    color: var(--arsol-text) !important;\n    -webkit-text-fill-color: var(--arsol-text) !important;\n    font-size: 16px !important;\n    font-weight: 400 !important;\n    line-height: 1.35 !important;\n    opacity: 1 !important;\n    outline: none !important;\n    appearance: auto;\n  }\n\n  .gfm-arsol__field textarea {\n    min-height: 120px;\n    resize: vertical;\n  }\n\n  .gfm-arsol__field input:focus,\n  .gfm-arsol__field select:focus,\n  .gfm-arsol__field textarea:focus {\n    border-color: var(--arsol-primary);\n    box-shadow: 0 0 0 3px rgba(0, 56, 231, 0.12);\n  }\n\n  .gfm-arsol__field [aria-invalid=\"true\"] {\n    border-color: var(--arsol-error);\n  }\n\n  .gfm-arsol__toggle,\n  .gfm-arsol__checks label {\n    display: flex;\n    align-items: flex-start;\n    gap: 10px;\n    cursor: pointer;\n  }\n\n  .gfm-arsol__toggle {\n    margin: 2px 0 14px !important;\n    padding: 0 !important;\n    font-weight: 700;\n    line-height: 1.35;\n  }\n\n  .gfm-arsol__toggle input,\n  .gfm-arsol__checks input {\n    width: 18px;\n    height: 18px;\n    margin: 2px 0 0 !important;\n    padding: 0 !important;\n    accent-color: var(--arsol-primary);\n    flex: 0 0 auto;\n  }\n\n  .gfm-arsol__fieldset {\n    margin: 0 0 14px !important;\n    padding: 18px;\n    border: 1px solid var(--arsol-border);\n    border-radius: 10px;\n    background: var(--arsol-soft);\n  }\n\n  .gfm-arsol__fieldset legend {\n    padding: 0 6px;\n  }\n\n  .gfm-arsol__checks {\n    display: grid;\n    gap: 12px;\n    margin-bottom: 20px;\n  }\n\n  .gfm-arsol__submit,\n  .gfm-arsol__submit:link,\n  .gfm-arsol__submit:visited {\n    display: block !important;\n    width: 100% !important;\n    max-width: none !important;\n    min-height: 50px !important;\n    margin: 0 !important;\n    padding: 12px 18px !important;\n    border: 0 !important;\n    border-radius: 8px !important;\n    background-color: var(--arsol-submit) !important;\n    background-image: none !important;\n    color: #ffffff !important;\n    -webkit-text-fill-color: #ffffff !important;\n    font-size: 16px !important;\n    font-weight: 700 !important;\n    line-height: 1.25 !important;\n    text-align: center !important;\n    text-decoration: none !important;\n    text-shadow: none !important;\n    box-shadow: none !important;\n    filter: none !important;\n    opacity: 1 !important;\n    appearance: none !important;\n    -webkit-appearance: none !important;\n    cursor: pointer !important;\n    transition: background-color 0.18s ease, transform 0.08s ease !important;\n  }\n\n  .gfm-arsol__submit:hover:not(:disabled),\n  .gfm-arsol__submit:focus-visible:not(:disabled) {\n    background-color: var(--arsol-submit-hover) !important;\n    color: #ffffff !important;\n    -webkit-text-fill-color: #ffffff !important;\n  }\n\n  .gfm-arsol__submit:active:not(:disabled) {\n    transform: translateY(1px);\n  }\n\n  .gfm-arsol__submit:disabled {\n    background-color: var(--arsol-submit) !important;\n    color: #ffffff !important;\n    -webkit-text-fill-color: #ffffff !important;\n    opacity: 1 !important;\n    filter: none !important;\n    cursor: wait !important;\n  }\n\n  .gfm-arsol__status {\n    margin-bottom: 16px;\n    padding: 12px 14px;\n    border-radius: 8px;\n    border: 1px solid transparent;\n  }\n\n  .gfm-arsol__status--error {\n    color: var(--arsol-error);\n    background: var(--arsol-error-bg);\n    border-color: #fecdca;\n  }\n\n  .gfm-arsol__success {\n    color: var(--arsol-success);\n    background: var(--arsol-success-bg);\n    border-color: #abefc6;\n    text-align: center;\n  }\n\n  .gfm-arsol__success h2 {\n    margin: 0 0 8px;\n  }\n\n  .gfm-arsol__success p {\n    margin: 0;\n  }\n\n  .gfm-arsol__privacy h2 {\n    margin: 0 0 16px;\n    font-size: 20px;\n  }\n\n  .gfm-arsol__privacy dl {\n    margin: 0;\n    border: 1px solid var(--arsol-border);\n    border-radius: 8px;\n    overflow: hidden;\n  }\n\n  .gfm-arsol__privacy dl > div {\n    display: grid;\n    grid-template-columns: minmax(180px, 0.35fr) 1fr;\n  }\n\n  .gfm-arsol__privacy dl > div + div {\n    border-top: 1px solid var(--arsol-border);\n  }\n\n  .gfm-arsol__privacy dt,\n  .gfm-arsol__privacy dd {\n    margin: 0;\n    padding: 14px;\n  }\n\n  .gfm-arsol__privacy dt {\n    font-weight: 700;\n    background: var(--arsol-soft);\n  }\n\n  @media (max-width: 700px) {\n    .gfm-arsol {\n      width: 100% !important;\n      max-width: 100% !important;\n      padding: 0 !important;\n    }\n    .gfm-arsol__intro,\n    .gfm-arsol__form,\n    .gfm-arsol__privacy,\n    .gfm-arsol__success {\n      padding: 18px;\n    }\n\n    .gfm-arsol__grid {\n      grid-template-columns: minmax(0, 1fr);\n      row-gap: 14px;\n      column-gap: 0;\n    }\n\n    .gfm-arsol__field,\n    .gfm-arsol__grid > .gfm-arsol__field {\n      min-width: 0 !important;\n      width: 100% !important;\n    }\n\n    .gfm-arsol__privacy dl > div {\n      grid-template-columns: 1fr;\n    }\n\n    .gfm-arsol__privacy dd {\n      padding-top: 0;\n      background: var(--arsol-soft);\n    }\n  }\n\n  @media (max-width: 420px) {\n    .gfm-arsol__intro,\n    .gfm-arsol__form,\n    .gfm-arsol__privacy,\n    .gfm-arsol__success {\n      padding: 14px !important;\n      border-radius: 10px !important;\n    }\n\n    .gfm-arsol__field input,\n    .gfm-arsol__field select,\n    .gfm-arsol__field textarea {\n      font-size: 16px !important;\n    }\n\n    .gfm-arsol__privacy h2 {\n      font-size: 18px !important;\n      line-height: 1.3 !important;\n    }\n  }\n<\/style>\n\n<script>\n(() => {\n  const config = {\n    endpoint: \"https:\/\/api.consentimientos.com\/api\/v1\/integraciones\/generales\/arsol\",\n    schemaVersion: 1,\n    par1: \"b2b0a52d-067d-4420-9a65-563b4116aff2\",\n    par2: \"65740f55-aa28-471a-8240-d7f939df7511\",\n    cliente: \"Basaburuko Udala\",\n    correo: \"udala@basaburua.eus\",\n    politicaPrivacidad: \"\"\n  };\n\n  const root = document.currentScript?.previousElementSibling?.matches('style')\n    ? document.currentScript.previousElementSibling.previousElementSibling\n    : document.querySelector('[data-gfm-arsol]');\n\n  if (!root) return;\n\n  const form = root.querySelector('[data-arsol-form]');\n  const submitButton = root.querySelector('[data-arsol-submit]');\n  const statusBox = root.querySelector('[data-arsol-status]');\n  const successBox = root.querySelector('[data-arsol-success]');\n  const minorToggle = root.querySelector('[data-arsol-minor-toggle]');\n  const minorBlock = root.querySelector('[data-arsol-minor]');\n  const objectionsBlock = root.querySelector('[data-arsol-objections]');\n  const rightSelect = form.elements.derecho;\n\n  root.querySelectorAll('[data-arsol-client-name]').forEach((element) => {\n    element.textContent = config.cliente;\n  });\n\n  const privacyLink = root.querySelector('[data-arsol-privacy-link]');\n  if (config.politicaPrivacidad) {\n    privacyLink.href = config.politicaPrivacidad;\n  } else {\n    privacyLink.removeAttribute('href');\n  }\n\n  const emailLink = root.querySelector('[data-arsol-email-link]');\n  emailLink.textContent = config.correo;\n  emailLink.href = `mailto:${config.correo}`;\n\n  const objectionRights = new Set(['supresion', 'oposicion', 'limitacion', 'revocacion']);\n\n  function updateMinorVisibility() {\n    const enabled = minorToggle.checked;\n    minorBlock.hidden = !enabled;\n    form.elements.menorNombre.required = enabled;\n    form.elements.menorApellido.required = enabled;\n\n    if (!enabled) {\n      form.elements.menorNombre.value = '';\n      form.elements.menorApellido.value = '';\n      form.elements.menorApellido2.value = '';\n    }\n  }\n\n  function updateObjectionsVisibility() {\n    objectionsBlock.hidden = !objectionRights.has(rightSelect.value);\n  }\n\n  function showError(message) {\n    statusBox.textContent = message;\n    statusBox.className = 'gfm-arsol__status gfm-arsol__status--error';\n    statusBox.hidden = false;\n    statusBox.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n  }\n\n  function clearStatus() {\n    statusBox.textContent = '';\n    statusBox.className = 'gfm-arsol__status';\n    statusBox.hidden = true;\n  }\n\n  function normalizeDocument(value) {\n    return value.trim().replace(\/\\s+\/g, '').toUpperCase();\n  }\n\n  function normalizePhone(value) {\n    return value.trim().replace(\/[()\\s-]\/g, '');\n  }\n\n  function isValidDniNie(value) {\n    return \/^(?:\\d{8}[A-Z]|[XYZ]\\d{7}[A-Z])$\/.test(value);\n  }\n\n  function validateForm() {\n    clearStatus();\n    form.querySelectorAll('[aria-invalid=\"true\"]').forEach((element) => {\n      element.removeAttribute('aria-invalid');\n    });\n\n    if (!form.checkValidity()) {\n      const invalid = form.querySelector(':invalid');\n      invalid?.setAttribute('aria-invalid', 'true');\n      invalid?.focus();\n      showError('Revisa los campos obligatorios antes de enviar la solicitud.');\n      return false;\n    }\n\n    const documentNumber = normalizeDocument(form.elements.dni.value);\n    if (!isValidDniNie(documentNumber)) {\n      form.elements.dni.setAttribute('aria-invalid', 'true');\n      form.elements.dni.focus();\n      showError('El DNI o NIE no tiene un formato v\u00e1lido.');\n      return false;\n    }\n\n    const phone = normalizePhone(form.elements.movil.value);\n    if (!\/^\\+?\\d{9,15}$\/.test(phone)) {\n      form.elements.movil.setAttribute('aria-invalid', 'true');\n      form.elements.movil.focus();\n      showError('El n\u00famero de m\u00f3vil no tiene un formato v\u00e1lido.');\n      return false;\n    }\n\n    return true;\n  }\n\n  function checkboxValue(name) {\n    return Boolean(form.elements[name]?.checked);\n  }\n\n  function buildPayload() {\n    const minorEnabled = minorToggle.checked;\n\n    return {\n      schemaVersion: config.schemaVersion,\n      par1: config.par1,\n      par2: config.par2,\n      derecho: form.elements.derecho.value,\n      nombre: form.elements.nombre.value.trim(),\n      apellido: form.elements.apellido.value.trim(),\n      apellido2: form.elements.apellido2.value.trim(),\n      dni: normalizeDocument(form.elements.dni.value),\n      email: form.elements.email.value.trim(),\n      movil: normalizePhone(form.elements.movil.value),\n      menorNombre: minorEnabled ? form.elements.menorNombre.value.trim() : '',\n      menorApellido: minorEnabled ? form.elements.menorApellido.value.trim() : '',\n      menorApellido2: minorEnabled ? form.elements.menorApellido2.value.trim() : '',\n      mensaje: form.elements.mensaje.value.trim(),\n      noAutorizoEnvioComunicaciones: checkboxValue('noAutorizoEnvioComunicaciones'),\n      noAutorizoEnvioComunicacionesMensajeriaInstantanea: checkboxValue('noAutorizoEnvioComunicacionesMensajeriaInstantanea'),\n      noAutorizoPublicacionImagenesWeb: checkboxValue('noAutorizoPublicacionImagenesWeb'),\n      noAutorizoPublicacionImagenesRedes: checkboxValue('noAutorizoPublicacionImagenesRedes'),\n      noAutorizoPublicacionIntranetCorporativa: checkboxValue('noAutorizoPublicacionIntranetCorporativa'),\n      noAutorizoCesionTerceros: checkboxValue('noAutorizoCesionTerceros'),\n      noAutorizoTratamientoDatosMenores: checkboxValue('noAutorizoTratamientoDatosMenores'),\n      noAutorizoTratamientoImagenesReconocimientoFacial: checkboxValue('noAutorizoTratamientoImagenesReconocimientoFacial'),\n      noAutorizoTratamientoDatosBiometricos: checkboxValue('noAutorizoTratamientoDatosBiometricos'),\n      noAutorizoTratamientoDatosSalud: checkboxValue('noAutorizoTratamientoDatosSalud'),\n      noAutorizoUtilizacionDatosPersonalesPolizasAnuladas: checkboxValue('noAutorizoUtilizacionDatosPersonalesPolizasAnuladas'),\n      otrosDerechos: form.elements.otrosDerechos.value.trim()\n    };\n  }\n\n  function getApiErrorMessage(result, status) {\n    if (result?.message) return result.message;\n\n    switch (result?.code) {\n      case 'INVALID_CREDENTIALS':\n        return 'No ha sido posible validar la integraci\u00f3n.';\n      case 'CLIENT_INACTIVE':\n        return 'La integraci\u00f3n no est\u00e1 disponible actualmente.';\n      case 'UNSUPPORTED_SCHEMA_VERSION':\n        return 'La versi\u00f3n de este formulario ya no est\u00e1 soportada.';\n      case 'INVALID_REQUEST':\n        return 'La solicitud contiene datos incompletos o incorrectos.';\n      case 'ARSOL_REGISTRATION_FAILED':\n        return 'No se ha podido registrar la solicitud.';\n      default:\n        return status >= 500\n          ? 'El servicio no est\u00e1 disponible temporalmente. Int\u00e9ntalo de nuevo m\u00e1s tarde.'\n          : 'No se ha podido enviar la solicitud.';\n    }\n  }\n\n  minorToggle.addEventListener('change', updateMinorVisibility);\n  rightSelect.addEventListener('change', updateObjectionsVisibility);\n\n  form.addEventListener('submit', async (event) => {\n    event.preventDefault();\n\n    if (!validateForm()) return;\n\n    submitButton.disabled = true;\n    submitButton.textContent = 'Enviando\u2026';\n    clearStatus();\n\n    try {\n      const response = await fetch(config.endpoint, {\n        method: 'POST',\n        headers: {\n          'Content-Type': 'application\/json',\n          'Accept': 'application\/json'\n        },\n        body: JSON.stringify(buildPayload())\n      });\n\n      let result = null;\n      try {\n        result = await response.json();\n      } catch {\n        result = null;\n      }\n\n      if (!response.ok || result?.success !== true || result?.code !== 'ARSOL_REGISTERED') {\n        throw new Error(getApiErrorMessage(result, response.status));\n      }\n\n      form.hidden = true;\n      successBox.hidden = false;\n      successBox.focus();\n    } catch (error) {\n      showError(error instanceof Error ? error.message : 'No se ha podido enviar la solicitud.');\n    } finally {\n      submitButton.disabled = false;\n      submitButton.textContent = 'Enviar solicitud';\n    }\n  });\n\n  updateMinorVisibility();\n  updateObjectionsVisibility();\n})();\n<\/script><\/div><\/div><\/div><\/div><\/div><\/section>\n","protected":false},"excerpt":{"rendered":"En [nombre_cliente] protegemos tus datos personales y, en cumplimiento del Reglamento (UE) 2016\/679 (RGPD) y la Ley Org\u00e1nica 3\/2018 (LOPDGDD), facilitamos el ejercicio de tus derechos. Acceso: saber si tratamos tus datos y consultar cu\u00e1les. Rectificaci\u00f3n: corregir datos inexactos o incompletos. Supresi\u00f3n: solicitar la eliminaci\u00f3n de tus datos cuando proceda. Limitaci\u00f3n: restringir temporalmente el tratamiento...","protected":false},"author":13,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-14829","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/basaburua.eus\/es\/wp-json\/wp\/v2\/pages\/14829","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/basaburua.eus\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/basaburua.eus\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/basaburua.eus\/es\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/basaburua.eus\/es\/wp-json\/wp\/v2\/comments?post=14829"}],"version-history":[{"count":1,"href":"https:\/\/basaburua.eus\/es\/wp-json\/wp\/v2\/pages\/14829\/revisions"}],"predecessor-version":[{"id":14830,"href":"https:\/\/basaburua.eus\/es\/wp-json\/wp\/v2\/pages\/14829\/revisions\/14830"}],"wp:attachment":[{"href":"https:\/\/basaburua.eus\/es\/wp-json\/wp\/v2\/media?parent=14829"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}