{"id":210,"date":"2026-08-06T08:10:52","date_gmt":"2026-08-06T08:10:52","guid":{"rendered":"https:\/\/sentiranimal.com\/?page_id=210"},"modified":"2026-08-06T08:13:30","modified_gmt":"2026-08-06T08:13:30","slug":"solicitar-valoracion-de-entrenamiento","status":"publish","type":"page","link":"https:\/\/sentiranimal.com\/en\/solicitar-valoracion-de-entrenamiento\/","title":{"rendered":"Solicitar valoraci\u00f3n de entrenamiento"},"content":{"rendered":"<div class=\"et_pb_section_0 et_pb_section et_section_regular et_flex_section\">\n<div class=\"et_pb_row_0 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_0 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_code_0 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><!-- SENTIR ANIMAL: formulario de entrenamiento funcional para modulo \"Codigo\" de Divi -->\n<div id=\"sa-functional-intake\" class=\"sapi\">\n  <div class=\"sapi-card\">\n    <div class=\"sapi-progress-wrap\" aria-hidden=\"true\">\n      <div class=\"sapi-progress\"><span><\/span><\/div>\n      <div class=\"sapi-progress-text\"><\/div>\n    <\/div>\n\n    <section class=\"sapi-screen sapi-intro is-active\">\n      <span class=\"sapi-kicker\"><\/span>\n      <h1><\/h1>\n      <p class=\"sapi-lead\"><\/p>\n      <div class=\"sapi-highlight\"><\/div>\n      <button type=\"button\" class=\"sapi-btn sapi-start\"><\/button>\n      <p class=\"sapi-time\"><\/p>\n    <\/section>\n\n    <section class=\"sapi-screen sapi-question\" aria-live=\"polite\">\n      <span class=\"sapi-step-label\"><\/span>\n      <h2><\/h2>\n      <p class=\"sapi-help\"><\/p>\n      <div class=\"sapi-field\"><\/div>\n      <p class=\"sapi-error\" role=\"alert\"><\/p>\n      <div class=\"sapi-nav\">\n        <button type=\"button\" class=\"sapi-back\"><\/button>\n        <button type=\"button\" class=\"sapi-btn sapi-next\"><\/button>\n      <\/div>\n    <\/section>\n\n    <section class=\"sapi-screen sapi-summary\" aria-live=\"polite\">\n      <span class=\"sapi-kicker\"><\/span>\n      <h2><\/h2>\n      <p class=\"sapi-summary-lead\"><\/p>\n      <div class=\"sapi-summary-box\"><\/div>\n      <label class=\"sapi-consent\">\n        <input type=\"checkbox\" class=\"sapi-consent-input\">\n        <span class=\"sapi-consent-text\"><\/span>\n      <\/label>\n      <p class=\"sapi-error sapi-consent-error\" role=\"alert\"><\/p>\n      <div class=\"sapi-summary-actions\">\n        <button type=\"button\" class=\"sapi-back sapi-summary-back\"><\/button>\n        <a class=\"sapi-btn sapi-whatsapp\" target=\"_blank\" rel=\"noopener\"><\/a>\n      <\/div>\n      <p class=\"sapi-privacy\"><\/p>\n    <\/section>\n\n    <section class=\"sapi-screen sapi-finished\" aria-live=\"polite\">\n      <span class=\"sapi-finished-icon\">\u2713<\/span>\n      <h2><\/h2>\n      <p><\/p>\n      <a class=\"sapi-btn sapi-open-whatsapp\" target=\"_blank\" rel=\"noopener\"><\/a>\n      <button type=\"button\" class=\"sapi-restart\"><\/button>\n    <\/section>\n  <\/div>\n<\/div>\n\n<style>\n  #sa-functional-intake {\n    --sapi-navy: #294f79;\n    --sapi-yellow: #ffe17c;\n    --sapi-coral: #e7645d;\n    --sapi-blue: #73c4ec;\n    --sapi-cream: #fff9f2;\n    --sapi-ink: #2d2d2d;\n    --sapi-muted: #6a6a6a;\n    font-family: inherit;\n    max-width: 850px;\n    margin: 36px auto;\n    color: var(--sapi-ink);\n  }\n  #sa-functional-intake * { box-sizing: border-box; }\n  #sa-functional-intake .sapi-card {\n    overflow: hidden;\n    background: var(--sapi-cream);\n    border: 1px solid rgba(41,79,121,.12);\n    border-radius: 28px;\n    padding: clamp(26px, 5vw, 58px);\n    box-shadow: 0 18px 55px rgba(41,79,121,.12);\n  }\n  #sa-functional-intake .sapi-screen { display: none; }\n  #sa-functional-intake .sapi-screen.is-active {\n    display: block;\n    animation: sapiIn .28s ease;\n  }\n  @keyframes sapiIn {\n    from { opacity: 0; transform: translateY(8px); }\n    to { opacity: 1; transform: translateY(0); }\n  }\n  #sa-functional-intake .sapi-kicker,\n  #sa-functional-intake .sapi-step-label {\n    display: inline-block;\n    margin-bottom: 12px;\n    color: var(--sapi-coral);\n    font-size: 13px;\n    font-weight: 800;\n    letter-spacing: .12em;\n    text-transform: uppercase;\n  }\n  #sa-functional-intake h1,\n  #sa-functional-intake h2 {\n    color: var(--sapi-ink);\n    line-height: 1.12;\n    margin: 0 0 18px;\n  }\n  #sa-functional-intake h1 { font-size: clamp(34px, 6vw, 58px); }\n  #sa-functional-intake h2 { font-size: clamp(28px, 4vw, 42px); }\n  #sa-functional-intake p { font-size: 17px; line-height: 1.65; }\n  #sa-functional-intake .sapi-lead { max-width: 690px; margin: 0 0 21px; }\n  #sa-functional-intake .sapi-highlight {\n    max-width: 650px;\n    margin: 0 0 28px;\n    padding: 15px 18px;\n    border-left: 5px solid var(--sapi-yellow);\n    border-radius: 0 14px 14px 0;\n    background: rgba(255,225,124,.22);\n    color: var(--sapi-navy);\n    font-size: 15px;\n    font-weight: 700;\n    line-height: 1.5;\n  }\n  #sa-functional-intake .sapi-time,\n  #sa-functional-intake .sapi-privacy {\n    margin: 14px 0 0;\n    color: var(--sapi-muted);\n    font-size: 13px;\n  }\n  #sa-functional-intake button,\n  #sa-functional-intake input,\n  #sa-functional-intake textarea,\n  #sa-functional-intake a { font-family: inherit; }\n  #sa-functional-intake .sapi-btn {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-height: 54px;\n    padding: 14px 27px;\n    border: 0;\n    border-radius: 999px;\n    background: var(--sapi-navy);\n    color: var(--sapi-yellow) !important;\n    font-size: 14px;\n    font-weight: 800;\n    letter-spacing: .075em;\n    line-height: 1.2;\n    text-align: center;\n    text-decoration: none;\n    text-transform: uppercase;\n    cursor: pointer;\n    transition: transform .18s ease, box-shadow .18s ease, opacity .18s ease;\n  }\n  #sa-functional-intake .sapi-btn:hover {\n    transform: translateY(-2px);\n    box-shadow: 0 10px 22px rgba(41,79,121,.2);\n  }\n  #sa-functional-intake .sapi-progress-wrap { display: none; margin-bottom: 30px; }\n  #sa-functional-intake .sapi-progress {\n    height: 9px;\n    overflow: hidden;\n    border-radius: 999px;\n    background: rgba(41,79,121,.12);\n  }\n  #sa-functional-intake .sapi-progress span {\n    display: block;\n    width: 0;\n    height: 100%;\n    border-radius: inherit;\n    background: linear-gradient(90deg, var(--sapi-coral), var(--sapi-yellow));\n    transition: width .25s ease;\n  }\n  #sa-functional-intake .sapi-progress-text {\n    margin-top: 8px;\n    color: var(--sapi-muted);\n    font-size: 13px;\n    text-align: right;\n  }\n  #sa-functional-intake .sapi-help {\n    margin: -7px 0 20px;\n    color: var(--sapi-muted);\n    font-size: 15px;\n  }\n  #sa-functional-intake .sapi-field { margin: 22px 0 12px; }\n  #sa-functional-intake .sapi-input,\n  #sa-functional-intake .sapi-textarea {\n    width: 100%;\n    border: 2px solid rgba(41,79,121,.18);\n    border-radius: 16px;\n    outline: none;\n    background: #fff;\n    color: var(--sapi-ink);\n    font-size: 17px;\n    line-height: 1.45;\n    padding: 17px 18px;\n    transition: border-color .16s ease, box-shadow .16s ease;\n  }\n  #sa-functional-intake .sapi-textarea { min-height: 145px; resize: vertical; }\n  #sa-functional-intake .sapi-input:focus,\n  #sa-functional-intake .sapi-textarea:focus {\n    border-color: var(--sapi-navy);\n    box-shadow: 0 0 0 4px rgba(41,79,121,.08);\n  }\n  #sa-functional-intake .sapi-options {\n    display: grid;\n    gap: 12px;\n  }\n  #sa-functional-intake .sapi-option {\n    position: relative;\n    display: flex;\n    align-items: flex-start;\n    gap: 13px;\n    width: 100%;\n    padding: 16px 18px;\n    border: 2px solid rgba(41,79,121,.14);\n    border-radius: 16px;\n    background: #fff;\n    color: var(--sapi-ink);\n    font-size: 16px;\n    line-height: 1.4;\n    text-align: left;\n    cursor: pointer;\n    transition: border-color .16s ease, background .16s ease, transform .16s ease;\n  }\n  #sa-functional-intake .sapi-option:hover {\n    border-color: rgba(41,79,121,.42);\n    transform: translateY(-1px);\n  }\n  #sa-functional-intake .sapi-option.is-selected {\n    border-color: var(--sapi-navy);\n    background: rgba(255,225,124,.28);\n    box-shadow: 0 0 0 3px rgba(41,79,121,.06);\n  }\n  #sa-functional-intake .sapi-choice-mark {\n    display: flex;\n    flex: 0 0 25px;\n    align-items: center;\n    justify-content: center;\n    width: 25px;\n    height: 25px;\n    margin-top: -1px;\n    border: 2px solid rgba(41,79,121,.35);\n    border-radius: 50%;\n    color: transparent;\n    font-size: 14px;\n    font-weight: 900;\n  }\n  #sa-functional-intake .sapi-option.is-multi .sapi-choice-mark { border-radius: 7px; }\n  #sa-functional-intake .sapi-option.is-selected .sapi-choice-mark {\n    border-color: var(--sapi-navy);\n    background: var(--sapi-navy);\n    color: var(--sapi-yellow);\n  }\n  #sa-functional-intake .sapi-error {\n    min-height: 24px;\n    margin: 8px 0 6px;\n    color: #b33d36;\n    font-size: 14px;\n    font-weight: 700;\n  }\n  #sa-functional-intake .sapi-nav,\n  #sa-functional-intake .sapi-summary-actions {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 15px;\n    margin-top: 17px;\n    flex-wrap: wrap;\n  }\n  #sa-functional-intake .sapi-back,\n  #sa-functional-intake .sapi-restart {\n    padding: 10px 2px;\n    border: 0;\n    background: transparent;\n    color: var(--sapi-navy);\n    font-size: 15px;\n    font-weight: 700;\n    text-decoration: underline;\n    cursor: pointer;\n  }\n  #sa-functional-intake .sapi-summary-lead { margin-bottom: 23px; }\n  #sa-functional-intake .sapi-summary-box {\n    display: grid;\n    gap: 10px;\n    padding: 20px;\n    border: 1px solid rgba(41,79,121,.14);\n    border-radius: 18px;\n    background: #fff;\n  }\n  #sa-functional-intake .sapi-summary-row {\n    display: grid;\n    grid-template-columns: minmax(130px, .7fr) 1.6fr;\n    gap: 14px;\n    padding-bottom: 10px;\n    border-bottom: 1px solid rgba(41,79,121,.09);\n    font-size: 15px;\n    line-height: 1.45;\n  }\n  #sa-functional-intake .sapi-summary-row:last-child {\n    padding-bottom: 0;\n    border-bottom: 0;\n  }\n  #sa-functional-intake .sapi-summary-key { color: var(--sapi-navy); font-weight: 800; }\n  #sa-functional-intake .sapi-summary-value { white-space: pre-line; }\n  #sa-functional-intake .sapi-consent {\n    display: flex;\n    align-items: flex-start;\n    gap: 12px;\n    margin-top: 20px;\n    cursor: pointer;\n  }\n  #sa-functional-intake .sapi-consent-input {\n    width: 20px;\n    height: 20px;\n    margin-top: 3px;\n    accent-color: var(--sapi-navy);\n  }\n  #sa-functional-intake .sapi-consent-text { font-size: 14px; line-height: 1.5; }\n  #sa-functional-intake .sapi-whatsapp,\n  #sa-functional-intake .sapi-open-whatsapp {\n    background: #128c7e;\n    color: #fff !important;\n  }\n  #sa-functional-intake .sapi-finished { text-align: center; }\n  #sa-functional-intake .sapi-finished-icon {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    width: 74px;\n    height: 74px;\n    margin-bottom: 20px;\n    border-radius: 50%;\n    background: var(--sapi-yellow);\n    color: var(--sapi-navy);\n    font-size: 37px;\n    font-weight: 900;\n  }\n  #sa-functional-intake .sapi-finished p { max-width: 600px; margin: 0 auto 25px; }\n  #sa-functional-intake .sapi-finished .sapi-restart { display: block; margin: 15px auto 0; }\n  @media (max-width: 600px) {\n    #sa-functional-intake { margin: 18px auto; }\n    #sa-functional-intake .sapi-card { border-radius: 20px; padding: 25px 20px; }\n    #sa-functional-intake p { font-size: 16px; }\n    #sa-functional-intake .sapi-summary-row { grid-template-columns: 1fr; gap: 3px; }\n    #sa-functional-intake .sapi-nav .sapi-next { flex: 1; }\n    #sa-functional-intake .sapi-summary-actions { align-items: stretch; flex-direction: column-reverse; }\n    #sa-functional-intake .sapi-summary-actions .sapi-btn { width: 100%; }\n  }\n<\/style>\n\n<script>\n(function () {\n  const root = document.getElementById('sa-functional-intake');\n  if (!root || root.dataset.ready === '1') return;\n  root.dataset.ready = '1';\n\n  const isEnglish = (document.documentElement.lang || '').toLowerCase().startsWith('en');\n  const lang = isEnglish ? 'en' : 'es';\n  const whatsappNumber = '61426646858';\n\n  const copy = {\n    es: {\n      kicker: 'Valoraci\u00f3n de entrenamiento funcional',\n      title: 'Cu\u00e9ntame sobre tu perro',\n      lead: 'Responde unas preguntas cortas para conocer mejor a tu perro y los objetivos que te gustar\u00eda trabajar.',\n      highlight: 'Tus respuestas me ayudar\u00e1n a comprender su rutina, sus habilidades actuales y lo que esperan conseguir con el entrenamiento.',\n      start: 'Comenzar solicitud',\n      time: 'Toma aproximadamente 3 minutos.',\n      step: (n, total) => `Paso ${n} de ${total}`,\n      next: 'Siguiente',\n      review: 'Revisar solicitud',\n      back: 'Anterior',\n      required: 'Completa esta respuesta para continuar.',\n      selectRequired: 'Selecciona al menos una opci\u00f3n para continuar.',\n      summaryKicker: 'Tu solicitud est\u00e1 lista',\n      summaryTitle: 'Revisa la informaci\u00f3n',\n      summaryLead: 'Si todo est\u00e1 correcto, env\u00eda la solicitud por WhatsApp. Podr\u00e1s revisar el mensaje antes de enviarlo.',\n      consent: 'Acepto compartir esta informaci\u00f3n por WhatsApp para recibir una respuesta sobre la valoraci\u00f3n.',\n      consentError: 'Confirma que deseas compartir la informaci\u00f3n para continuar.',\n      send: 'Enviar por WhatsApp',\n      privacy: 'Tus respuestas no se env\u00edan autom\u00e1ticamente ni se guardan en este formulario. WhatsApp se abrir\u00e1 con el mensaje preparado y t\u00fa decides si lo env\u00edas.',\n      finishedTitle: 'WhatsApp est\u00e1 listo',\n      finishedText: 'Se abri\u00f3 una ventana con tu solicitud. Revisa el mensaje y pulsa Enviar dentro de WhatsApp.',\n      openAgain: 'Abrir WhatsApp otra vez',\n      restart: 'Empezar una nueva solicitud',\n      notProvided: 'No especificado',\n      labels: {\n        person: 'Nombre', puppy: 'Perro', age: 'Edad', breed: 'Raza o mezcla',\n        location: 'Ubicaci\u00f3n', topics: 'Temas principales', details: 'Informaci\u00f3n adicional',\n        modality: 'Modalidad', availability: 'Disponibilidad', contact: 'Contacto'\n      },\n      questions: [\n        { id: 'person', type: 'text', q: '\u00bfC\u00f3mo te llamas?', placeholder: 'Escribe tu nombre', help: 'As\u00ed sabr\u00e9 c\u00f3mo dirigirme a ti.', required: true },\n        { id: 'puppy', type: 'text', q: '\u00bfC\u00f3mo se llama tu perro?', placeholder: 'Nombre del perro', help: '', required: true },\n        { id: 'age', type: 'single', q: '\u00bfQu\u00e9 edad tiene tu perro?', help: 'El entrenamiento se adapta a su edad, experiencia y necesidades.', required: true,\n          options: ['Menos de 1 a\u00f1o', 'Entre 1 y 3 a\u00f1os', 'Entre 4 y 7 a\u00f1os', '8 a\u00f1os o m\u00e1s'] },\n        { id: 'breed', type: 'text', q: '\u00bfQu\u00e9 raza o mezcla es?', placeholder: 'Ejemplo: Labrador, mestizo o no estoy seguro\/a', help: 'No pasa nada si no conoces su raza.', required: true },\n        { id: 'location', type: 'text', q: '\u00bfD\u00f3nde viven?', placeholder: 'Ciudad, suburbio y pa\u00eds', help: 'El entrenamiento presencial est\u00e1 disponible en Brisbane y el virtual en cualquier lugar.', required: true },\n        { id: 'topics', type: 'multi', q: '\u00bfQu\u00e9 les gustar\u00eda trabajar?', help: 'Puedes seleccionar varias opciones.', required: true,\n          options: ['Paseos y tirones de correa', 'Llamado', 'Autocontrol y espera', 'Permanecer en un lugar', 'Soltar o dejar objetos', 'Educaci\u00f3n b\u00e1sica', 'Manejo de distracciones', 'Juego y comunicaci\u00f3n', 'Otra habilidad espec\u00edfica'] },\n        { id: 'details', type: 'textarea', q: 'Cu\u00e9ntame un poco m\u00e1s sobre sus objetivos', placeholder: 'Describe qu\u00e9 quieres ense\u00f1arle, mejorar o corregir y qu\u00e9 han intentado hasta ahora.', help: 'Esta respuesta es opcional, pero me ayudar\u00e1 a preparar mejor la valoraci\u00f3n.', required: false },\n        { id: 'modality', type: 'single', q: '\u00bfQu\u00e9 modalidad prefieres?', help: 'La valoraci\u00f3n presencial cuesta $80 AUD y la virtual $64 AUD.', required: true,\n          options: ['Presencial en Brisbane', 'Virtual', 'No estoy seguro\/a'] },\n        { id: 'availability', type: 'multi', q: '\u00bfQu\u00e9 horarios suelen funcionarles mejor?', help: 'Puedes seleccionar m\u00e1s de una opci\u00f3n.', required: true,\n          options: ['Entre semana en la ma\u00f1ana', 'Entre semana en la tarde', 'Entre semana en la noche', 'Fin de semana', 'Necesito consultar disponibilidad'] },\n        { id: 'contact', type: 'text', q: '\u00bfCu\u00e1l es tu correo electr\u00f3nico o n\u00famero de contacto?', placeholder: 'Correo electr\u00f3nico o tel\u00e9fono', help: 'Lo utilizar\u00e9 solamente para responder a tu solicitud.', required: true }\n      ],\n      messageTitle: 'Hola, Ana. Quisiera solicitar una valoraci\u00f3n de entrenamiento funcional para mi perro.'\n    },\n    en: {\n      kicker: 'Practical training assessment',\n      title: 'Tell me about your dog',\n      lead: 'Answer a few short questions so I can learn about your dog and understand the goals you would like to work on.',\n      highlight: 'Your answers will help me understand your dog\u2019s routine, current skills and what you hope to achieve through training.',\n      start: 'Start request',\n      time: 'It takes approximately 3 minutes.',\n      step: (n, total) => `Step ${n} of ${total}`,\n      next: 'Next',\n      review: 'Review request',\n      back: 'Back',\n      required: 'Please complete this answer to continue.',\n      selectRequired: 'Please select at least one option to continue.',\n      summaryKicker: 'Your request is ready',\n      summaryTitle: 'Review your information',\n      summaryLead: 'If everything is correct, send your request through WhatsApp. You can review the message before sending it.',\n      consent: 'I agree to share this information through WhatsApp so I can receive a response about the assessment.',\n      consentError: 'Please confirm that you want to share this information.',\n      send: 'Send through WhatsApp',\n      privacy: 'Your answers are not sent automatically or stored by this form. WhatsApp will open with a prepared message, and you decide whether to send it.',\n      finishedTitle: 'WhatsApp is ready',\n      finishedText: 'A window with your request was opened. Review the message and press Send in WhatsApp.',\n      openAgain: 'Open WhatsApp again',\n      restart: 'Start a new request',\n      notProvided: 'Not provided',\n      labels: {\n        person: 'Name', puppy: 'Dog', age: 'Age', breed: 'Breed or mix',\n        location: 'Location', topics: 'Main topics', details: 'Additional information',\n        modality: 'Format', availability: 'Availability', contact: 'Contact details'\n      },\n      questions: [\n        { id: 'person', type: 'text', q: 'What is your name?', placeholder: 'Enter your name', help: 'This lets me know how to address you.', required: true },\n        { id: 'puppy', type: 'text', q: 'What is your dog\u2019s name?', placeholder: 'Dog\u2019s name', help: '', required: true },\n        { id: 'age', type: 'single', q: 'How old is your dog?', help: 'Training is adapted to your dog\u2019s age, experience and needs.', required: true,\n          options: ['Under 1 year', 'Between 1 and 3 years', 'Between 4 and 7 years', '8 years or older'] },\n        { id: 'breed', type: 'text', q: 'What breed or mix is your dog?', placeholder: 'For example: Labrador, mixed breed or not sure', help: 'It is okay if you do not know the breed.', required: true },\n        { id: 'location', type: 'text', q: 'Where do you live?', placeholder: 'City, suburb and country', help: 'In-person training is available in Brisbane and online training is available worldwide.', required: true },\n        { id: 'topics', type: 'multi', q: 'What would you like to work on?', help: 'You can select more than one option.', required: true,\n          options: ['Walking and pulling on the lead', 'Recall', 'Self-control and waiting', 'Staying in a designated place', 'Drop it or leave it', 'Basic education', 'Managing distractions', 'Play and communication', 'Another specific skill'] },\n        { id: 'details', type: 'textarea', q: 'Tell me a little more about your goals', placeholder: 'Describe what you would like to teach, improve or change and what you have tried so far.', help: 'This answer is optional, but it will help me prepare for the assessment.', required: false },\n        { id: 'modality', type: 'single', q: 'Which format do you prefer?', help: 'The in-person assessment is $80 AUD and the online assessment is $64 AUD.', required: true,\n          options: ['In person in Brisbane', 'Online', 'I am not sure'] },\n        { id: 'availability', type: 'multi', q: 'Which times usually work best for you?', help: 'You can select more than one option.', required: true,\n          options: ['Weekday mornings', 'Weekday afternoons', 'Weekday evenings', 'Weekends', 'I need to check availability'] },\n        { id: 'contact', type: 'text', q: 'What is your email address or contact number?', placeholder: 'Email address or phone number', help: 'I will only use it to respond to your request.', required: true }\n      ],\n      messageTitle: 'Hi Ana. I would like to request a practical dog training assessment.'\n    }\n  };\n\n  const t = copy[lang];\n  const screens = {\n    intro: root.querySelector('.sapi-intro'),\n    question: root.querySelector('.sapi-question'),\n    summary: root.querySelector('.sapi-summary'),\n    finished: root.querySelector('.sapi-finished')\n  };\n  const progressWrap = root.querySelector('.sapi-progress-wrap');\n  const progressBar = root.querySelector('.sapi-progress span');\n  const progressText = root.querySelector('.sapi-progress-text');\n  const state = { index: 0, answers: {} };\n  let whatsappUrl = '';\n\n  \/\/ Evita que enlaces configurados accidentalmente en una fila o seccion de\n  \/\/ Divi reciban los clics realizados dentro del formulario.\n  root.addEventListener('click', event => event.stopPropagation());\n\n  function setScreen(name) {\n    Object.values(screens).forEach(screen => screen.classList.remove('is-active'));\n    screens[name].classList.add('is-active');\n    progressWrap.style.display = name === 'question' ? 'block' : 'none';\n    root.scrollIntoView({ behavior: 'smooth', block: 'start' });\n  }\n\n  function setStaticCopy() {\n    screens.intro.querySelector('.sapi-kicker').textContent = t.kicker;\n    screens.intro.querySelector('h1').textContent = t.title;\n    screens.intro.querySelector('.sapi-lead').textContent = t.lead;\n    screens.intro.querySelector('.sapi-highlight').textContent = t.highlight;\n    screens.intro.querySelector('.sapi-start').textContent = t.start;\n    screens.intro.querySelector('.sapi-time').textContent = t.time;\n    screens.question.querySelector('.sapi-back').textContent = t.back;\n    screens.summary.querySelector('.sapi-kicker').textContent = t.summaryKicker;\n    screens.summary.querySelector('h2').textContent = t.summaryTitle;\n    screens.summary.querySelector('.sapi-summary-lead').textContent = t.summaryLead;\n    screens.summary.querySelector('.sapi-consent-text').textContent = t.consent;\n    screens.summary.querySelector('.sapi-summary-back').textContent = t.back;\n    screens.summary.querySelector('.sapi-whatsapp').textContent = t.send;\n    screens.summary.querySelector('.sapi-privacy').textContent = t.privacy;\n    screens.finished.querySelector('h2').textContent = t.finishedTitle;\n    screens.finished.querySelector('p').textContent = t.finishedText;\n    screens.finished.querySelector('.sapi-open-whatsapp').textContent = t.openAgain;\n    screens.finished.querySelector('.sapi-restart').textContent = t.restart;\n  }\n\n  function createOption(label, multi, selected) {\n    const button = document.createElement('button');\n    button.type = 'button';\n    button.className = 'sapi-option' + (multi ? ' is-multi' : '') + (selected ? ' is-selected' : '');\n    button.dataset.value = label;\n    button.setAttribute('aria-pressed', selected ? 'true' : 'false');\n    const mark = document.createElement('span');\n    mark.className = 'sapi-choice-mark';\n    mark.textContent = '\u2713';\n    const text = document.createElement('span');\n    text.textContent = label;\n    button.append(mark, text);\n    return button;\n  }\n\n  function renderQuestion() {\n    const q = t.questions[state.index];\n    const field = screens.question.querySelector('.sapi-field');\n    const error = screens.question.querySelector('.sapi-error');\n    screens.question.querySelector('.sapi-step-label').textContent = t.step(state.index + 1, t.questions.length);\n    screens.question.querySelector('h2').textContent = q.q;\n    screens.question.querySelector('.sapi-help').textContent = q.help || '';\n    screens.question.querySelector('.sapi-next').textContent = state.index === t.questions.length - 1 ? t.review : t.next;\n    progressBar.style.width = `${((state.index + 1) \/ t.questions.length) * 100}%`;\n    progressText.textContent = t.step(state.index + 1, t.questions.length);\n    error.textContent = '';\n    field.innerHTML = '';\n\n    if (q.type === 'text' || q.type === 'textarea') {\n      const input = document.createElement(q.type === 'textarea' ? 'textarea' : 'input');\n      if (q.type === 'text') input.type = 'text';\n      input.className = q.type === 'textarea' ? 'sapi-textarea' : 'sapi-input';\n      input.placeholder = q.placeholder || '';\n      input.value = state.answers[q.id] || '';\n      input.autocomplete = q.id === 'person' ? 'name' : (q.id === 'contact' ? 'email' : 'off');\n      input.addEventListener('input', () => {\n        state.answers[q.id] = input.value.trim();\n        error.textContent = '';\n      });\n      input.addEventListener('keydown', event => {\n        if (event.key === 'Enter' && q.type === 'text') {\n          event.preventDefault();\n          goNext();\n        }\n      });\n      field.appendChild(input);\n      setTimeout(() => input.focus(), 60);\n      return;\n    }\n\n    const options = document.createElement('div');\n    options.className = 'sapi-options';\n    const current = q.type === 'multi' ? (state.answers[q.id] || []) : state.answers[q.id];\n    q.options.forEach(label => {\n      const selected = q.type === 'multi' ? current.includes(label) : current === label;\n      const option = createOption(label, q.type === 'multi', selected);\n      option.addEventListener('click', () => {\n        error.textContent = '';\n        if (q.type === 'multi') {\n          const values = state.answers[q.id] || [];\n          state.answers[q.id] = values.includes(label) ? values.filter(v => v !== label) : [...values, label];\n          option.classList.toggle('is-selected');\n          option.setAttribute('aria-pressed', option.classList.contains('is-selected') ? 'true' : 'false');\n        } else {\n          state.answers[q.id] = label;\n          options.querySelectorAll('.sapi-option').forEach(item => {\n            item.classList.toggle('is-selected', item === option);\n            item.setAttribute('aria-pressed', item === option ? 'true' : 'false');\n          });\n        }\n      });\n      options.appendChild(option);\n    });\n    field.appendChild(options);\n  }\n\n  function currentIsValid() {\n    const q = t.questions[state.index];\n    if (!q.required) return true;\n    const value = state.answers[q.id];\n    if (q.type === 'multi') return Array.isArray(value) && value.length > 0;\n    return typeof value === 'string' && value.trim().length > 0;\n  }\n\n  function goNext() {\n    const error = screens.question.querySelector('.sapi-error');\n    if (!currentIsValid()) {\n      error.textContent = t.questions[state.index].type === 'multi' ? t.selectRequired : t.required;\n      return;\n    }\n    if (state.index < t.questions.length - 1) {\n      state.index += 1;\n      renderQuestion();\n      setScreen('question');\n    } else {\n      renderSummary();\n      setScreen('summary');\n    }\n  }\n\n  function goBack() {\n    if (state.index > 0) {\n      state.index -= 1;\n      renderQuestion();\n    } else {\n      setScreen('intro');\n    }\n  }\n\n  function displayValue(id) {\n    const value = state.answers[id];\n    if (Array.isArray(value)) return value.length ? value.join(', ') : t.notProvided;\n    return value || t.notProvided;\n  }\n\n  function buildMessage() {\n    const lines = [\n      t.messageTitle,\n      '',\n      `${t.labels.person}: ${displayValue('person')}`,\n      `${t.labels.puppy}: ${displayValue('puppy')}`,\n      `${t.labels.age}: ${displayValue('age')}`,\n      `${t.labels.breed}: ${displayValue('breed')}`,\n      `${t.labels.location}: ${displayValue('location')}`,\n      '',\n      `${t.labels.topics}:`,\n      ...(state.answers.topics || []).map(item => `- ${item}`),\n      '',\n      `${t.labels.details}:`,\n      displayValue('details'),\n      '',\n      `${t.labels.modality}: ${displayValue('modality')}`,\n      `${t.labels.availability}: ${displayValue('availability')}`,\n      `${t.labels.contact}: ${displayValue('contact')}`\n    ];\n    return lines.join('\\n');\n  }\n\n  function renderSummary() {\n    const box = screens.summary.querySelector('.sapi-summary-box');\n    box.innerHTML = '';\n    t.questions.forEach(q => {\n      const row = document.createElement('div');\n      row.className = 'sapi-summary-row';\n      const key = document.createElement('span');\n      key.className = 'sapi-summary-key';\n      key.textContent = t.labels[q.id];\n      const value = document.createElement('span');\n      value.className = 'sapi-summary-value';\n      value.textContent = displayValue(q.id);\n      row.append(key, value);\n      box.appendChild(row);\n    });\n    whatsappUrl = `https:\/\/wa.me\/${whatsappNumber}?text=${encodeURIComponent(buildMessage())}`;\n    screens.summary.querySelector('.sapi-whatsapp').href = whatsappUrl;\n    screens.finished.querySelector('.sapi-open-whatsapp').href = whatsappUrl;\n    screens.summary.querySelector('.sapi-consent-input').checked = false;\n    screens.summary.querySelector('.sapi-consent-error').textContent = '';\n  }\n\n  screens.intro.querySelector('.sapi-start').addEventListener('click', () => {\n    state.index = 0;\n    renderQuestion();\n    setScreen('question');\n  });\n  screens.question.querySelector('.sapi-next').addEventListener('click', goNext);\n  screens.question.querySelector('.sapi-back').addEventListener('click', goBack);\n  screens.summary.querySelector('.sapi-summary-back').addEventListener('click', () => {\n    state.index = t.questions.length - 1;\n    renderQuestion();\n    setScreen('question');\n  });\n  screens.summary.querySelector('.sapi-whatsapp').addEventListener('click', event => {\n    const consent = screens.summary.querySelector('.sapi-consent-input');\n    if (!consent.checked) {\n      event.preventDefault();\n      screens.summary.querySelector('.sapi-consent-error').textContent = t.consentError;\n      consent.focus();\n      return;\n    }\n    setTimeout(() => setScreen('finished'), 250);\n  });\n  screens.summary.querySelector('.sapi-consent-input').addEventListener('change', () => {\n    screens.summary.querySelector('.sapi-consent-error').textContent = '';\n  });\n  screens.finished.querySelector('.sapi-restart').addEventListener('click', () => {\n    state.index = 0;\n    state.answers = {};\n    setScreen('intro');\n  });\n\n  setStaticCopy();\n})();\n<\/script>\n<\/div><\/div>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"om_disable_all_campaigns":false,"footnotes":""},"class_list":["post-210","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/sentiranimal.com\/en\/wp-json\/wp\/v2\/pages\/210","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sentiranimal.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sentiranimal.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sentiranimal.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sentiranimal.com\/en\/wp-json\/wp\/v2\/comments?post=210"}],"version-history":[{"count":4,"href":"https:\/\/sentiranimal.com\/en\/wp-json\/wp\/v2\/pages\/210\/revisions"}],"predecessor-version":[{"id":214,"href":"https:\/\/sentiranimal.com\/en\/wp-json\/wp\/v2\/pages\/210\/revisions\/214"}],"wp:attachment":[{"href":"https:\/\/sentiranimal.com\/en\/wp-json\/wp\/v2\/media?parent=210"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}