{"id":84,"date":"2025-11-04T13:13:34","date_gmt":"2025-11-04T18:13:34","guid":{"rendered":"https:\/\/amir.tag25.com\/?page_id=84"},"modified":"2025-12-15T15:45:25","modified_gmt":"2025-12-15T20:45:25","slug":"home","status":"publish","type":"page","link":"https:\/\/qa.amirlatam.com\/colombia\/home\/","title":{"rendered":"AMIR Colombia: Curso para MIR"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" width=\"1080\" height=\"472\" src=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/12\/Logo-AMIR-by-Healthcademia-01.svg\" alt=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/p>\n<h2>Te acompa\u00f1amos en cada etapa de tU camino profesional<\/h2>\n<details id=\"e-n-accordion-item-1630\" >\n<summary data-accordion-index=\"1\" tabindex=\"0\" aria-expanded=\"false\" aria-controls=\"e-n-accordion-item-1630\" >\n\t\t\t\t\t CURSOS RESIDENCIAS M\u00c9DICAS<br \/>\n\t\t\t<svg aria-hidden=\"true\" viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"><\/path><\/svg><br \/>\n\t\t\t<svg aria-hidden=\"true\" viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t<\/summary>\n<h2><a href=\"https:\/\/qa.amirlatam.com\/colombia\/producto\/curso-mir-2027\/\">Curso MIR 2027<\/a><\/h2>\n<h2><a href=\"https:\/\/qa.amirlatam.com\/colombia\/producto\/diplomado-residencias-medicas\/\">Diplomado Residencia M\u00e9dica<\/a><\/h2>\n<\/details>\n<h2><a href=\"https:\/\/qa.amirlatam.com\/colombia\/producto\/curso-mir-2027\/\">Curso MIR 2027<\/a><\/h2>\n<h2><a href=\"https:\/\/qa.amirlatam.com\/colombia\/producto\/diplomado-residencias-medicas\/\">Diplomado Residencia M\u00e9dica<\/a><\/h2>\n<details id=\"e-n-accordion-item-2430\" >\n<summary data-accordion-index=\"1\" tabindex=\"0\" aria-expanded=\"false\" aria-controls=\"e-n-accordion-item-2430\" >\n\t\t\t\t\t M\u00e1sters Y POSGRADOS<br \/>\n\t\t\t<svg aria-hidden=\"true\" viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"><\/path><\/svg><br \/>\n\t\t\t<svg aria-hidden=\"true\" viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t<\/summary>\n<h2><a href=\"https:\/\/qa.amirlatam.com\/colombia\/producto\/master-en-medicina-estetica\/\">Medicina Est\u00e9tica<\/a><\/h2>\n<h2><a href=\"https:\/\/qa.amirlatam.com\/colombia\/producto\/master-en-tricoloia\/\">Tricolog\u00eda<\/a><\/h2>\n<h2><a href=\"https:\/\/qa.amirlatam.com\/colombia\/producto\/master-en-sexologia-y-terapia-de-pareja\/\">Sexolog\u00eda y Terapia de Pareja<\/a><\/h2>\n<\/details>\n<h2><a href=\"https:\/\/qa.amirlatam.com\/colombia\/producto\/master-en-medicina-estetica\/\">Medicina Est\u00e9tica<\/a><\/h2>\n<h2><a href=\"https:\/\/qa.amirlatam.com\/colombia\/producto\/master-en-tricoloia\/\">Tricolog\u00eda<\/a><\/h2>\n<h2><a href=\"https:\/\/qa.amirlatam.com\/colombia\/producto\/master-en-sexologia-y-terapia-de-pareja\/\">Sexolog\u00eda y Terapia de Pareja<\/a><\/h2>\n<details id=\"btn-dip-gral\" >\n<summary data-accordion-index=\"1\" tabindex=\"0\" aria-expanded=\"false\" aria-controls=\"btn-dip-gral\" >\n\t\t\t\t\t DIPLOMADOS INTERNACIONALES<br \/>\n\t\t\t<svg aria-hidden=\"true\" viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"><\/path><\/svg><br \/>\n\t\t\t<svg aria-hidden=\"true\" viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t<\/summary>\n<h2><a href=\"https:\/\/qa.amirlatam.com\/colombia\/producto\/diplomados-internacionales\/#btn-1\">Pediatr\u00eda Hospitalaria<\/a><\/h2>\n<h2><a href=\"https:\/\/qa.amirlatam.com\/colombia\/producto\/diplomados-internacionales\/#btn-2\">Anestesiolog\u00eda &amp; Reanimaci\u00f3n<\/a><\/h2>\n<h2><a href=\"https:\/\/qa.amirlatam.com\/colombia\/producto\/diplomados-internacionales\/#btn-3\">Cardiolog\u00eda<\/a><\/h2>\n<h2><a href=\"https:\/\/qa.amirlatam.com\/colombia\/producto\/diplomados-internacionales\/#btn-4\">Enfermedades Infecciosas<\/a><\/h2>\n<h2><a href=\"https:\/\/qa.amirlatam.com\/colombia\/producto\/diplomados-internacionales\/#btn-5\">Ginecolog\u00eda y Obstetricia<\/a><\/h2>\n<h2><a href=\"https:\/\/qa.amirlatam.com\/colombia\/producto\/diplomados-internacionales\/#btn-6\">Hematolog\u00eda<\/a><\/h2>\n<h2><a href=\"https:\/\/qa.amirlatam.com\/colombia\/producto\/diplomados-internacionales\/#btn-7\">Medicina Intensiva<\/a><\/h2>\n<\/details>\n<h2><a href=\"https:\/\/qa.amirlatam.com\/colombia\/producto\/diplomados-internacionales\/#btn-1\">Pediatr\u00eda Hospitalaria<\/a><\/h2>\n<h2><a href=\"https:\/\/qa.amirlatam.com\/colombia\/producto\/diplomados-internacionales\/#btn-2\">Anestesiolog\u00eda &amp; Reanimaci\u00f3n<\/a><\/h2>\n<h2><a href=\"https:\/\/qa.amirlatam.com\/colombia\/producto\/diplomados-internacionales\/#btn-3\">Cardiolog\u00eda<\/a><\/h2>\n<h2><a href=\"https:\/\/qa.amirlatam.com\/colombia\/producto\/diplomados-internacionales\/#btn-4\">Enfermedades Infecciosas<\/a><\/h2>\n<h2><a href=\"https:\/\/qa.amirlatam.com\/colombia\/producto\/diplomados-internacionales\/#btn-5\">Ginecolog\u00eda y Obstetricia<\/a><\/h2>\n<h2><a href=\"https:\/\/qa.amirlatam.com\/colombia\/producto\/diplomados-internacionales\/#btn-6\">Hematolog\u00eda<\/a><\/h2>\n<h2><a href=\"https:\/\/qa.amirlatam.com\/colombia\/producto\/diplomados-internacionales\/#btn-7\">Medicina Intensiva<\/a><\/h2>\n<p>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"379\" height=\"273\" src=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/group_224.webp\" alt=\"\" srcset=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/group_224.webp 379w, https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/group_224-300x216.webp 300w\" sizes=\"auto, (max-width: 379px) 100vw, 379px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/p>\n<h2>\u00bfQui\u00e9nes somos?<\/h2>\n<p>Somos AMIR, parte de Healthcademia, el grupo educativo en salud m\u00e1s grande del mundo de habla hispana.<\/p>\n<p>\t\t\tA\u00f1os de experiencia<br \/>\n\t\t\t\t+<br \/>\n\t\t\t\t0<br \/>\n\t\t\tProfesionales formados<br \/>\n\t\t\t\t+<br \/>\n\t\t\t\t0<br \/>\n\t\t\t\tk<br \/>\n\t\t\tPa\u00edses en el mundo<br \/>\n\t\t\t\t0<br \/>\n\t\t\tProgramas activos<br \/>\n\t\t\t\t+<br \/>\n\t\t\t\t0<\/p>\n<p>Nuestra misi\u00f3n ha sido formar a la siguiente generaci\u00f3n de m\u00e9dicos y profesionales de la salud, a trav\u00e9s de un modelo educativo creado por quienes mejor conocen la vocaci\u00f3n: m\u00e9dicos que forman a m\u00e9dicos.\u00a0<\/p>\n<style>\n\/*Evita que el formulario de Elementor se env\u00ede si el n\u00famero de tel\u00e9fono no tiene exactamente 10 d\u00edgitos, muestra un error y marca el campo en rojo.*\/\n  \/* Opcional: estilo para marcar el campo con error *\/\n  .campo-error {\n    border-color: #ff0000 !important;\n  }\n<\/style>\n<p>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"528\" height=\"404\" src=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/freepik_a_25yearold_white_latin_woman_with_a_headset_on_we_75338_1.webp\" alt=\"\" srcset=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/freepik_a_25yearold_white_latin_woman_with_a_headset_on_we_75338_1.webp 528w, https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/freepik_a_25yearold_white_latin_woman_with_a_headset_on_we_75338_1-300x230.webp 300w\" sizes=\"auto, (max-width: 528px) 100vw, 528px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/p>\n<h2>Nuestros asesores expertos <\/h2>\n<h2> te guiar\u00e1n en cada paso&#8230;<\/h2>\n<style type=\"text\/css\">\n\/* Healthcademia Default Form CSS *\/\n\/* ===================================\n   VARIABLES CSS PERSONALIZABLES\n   =================================== *\/\n:root {\n    \/* Espaciados *\/\n    --hc-container-padding: 30px;\n    --hc-field-margin: 18px;\n    --hc-name-row-gap: 16px;\n    --hc-header-gap: 12px;\n    --hc-checkbox-gap: 8px;\n    --hc-phone-prefix-gap: 16px;\n    \n    \/* Bordes y radios *\/\n    --hc-container-radius: 16px;\n    --hc-input-radius: 8px;\n    --hc-input-border-width: 1px;\n    \n    \/* Colores *\/\n    --hc-bg-color: #fff;\n    --hc-border-color: #d6d6d6;\n    --hc-container-border-color: #e0e0e0;\n    --hc-primary-color: #1976d2;\n    --hc-error-color: #d32f2f;\n    --hc-error-color-bg: #fff5f7;\n    --hc-text-color: #333;\n    --hc-label-color: #999;\n    \n    \/* Tipograf\u00eda *\/\n    --hc-font-family: \"Inter\", Arial, sans-serif;\n    --hc-input-font-size: 15px;\n    --hc-label-font-size: 15px;\n    --hc-label-font-size-small: 12px;\n    --hc-checkbox-font-size: 14px;\n    \n    \/* Transiciones *\/\n    --hc-transition-duration: 0.2s;\n    --hc-transition-timing: ease;\n    \n    \/* Tama\u00f1os espec\u00edficos *\/\n    --hc-input-padding: 5px 10px 7px 10px;\n    --hc-textarea-min-height: 110px;\n    --hc-focus-shadow-size: 2px;\n    --hc-button-padding: 14px 24px;\n    --hc-phone-prefix-width: 120px;\n}\n\n\/* ===================================\n   ESTILOS DEL FORMULARIO\n   =================================== *\/\n\n\/* Healthcademia Default Form Styles *\/\n.hc-form-container {\n    background: var(--hc-bg-color);\n    border-radius: var(--hc-container-radius);\n    padding: var(--hc-container-padding);\n    border: var(--hc-input-border-width) solid var(--hc-container-border-color);\n    position: relative;\n    font-family: var(--hc-font-family);\n}\n\n.hc-form-header {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    gap: var(--hc-header-gap);\n    margin-bottom: var(--hc-header-gap);\n}\n\n.hc-form {\n    display: flex;\n    flex-direction: column;\n}\n\n\/* Nombre y apellidos en horizontal *\/\n.hc-name-row {\n    display: flex;\n    gap: var(--hc-name-row-gap);\n    margin-bottom: var(--hc-field-margin);\n}\n\n.hc-name-row .hc-field {\n    flex: 1;\n    margin-bottom: 0;\n}\n\n\/* Responsive: en m\u00f3viles volver a vertical *\/\n@media (max-width: 640px) {\n    .hc-name-row {\n        flex-direction: column;\n        gap: 0;\n    }\n    \n    .hc-name-row .hc-field {\n        margin-bottom: var(--hc-field-margin);\n    }\n    .hc-name-row .hc-field:last-child {\n        margin-bottom: 0;\n    }\n}\n\n.hc-form-header h2,\n.hc-form-title {\n    margin: 0;\n}\n\n.hc-field {\n    margin-bottom: var(--hc-field-margin);\n    position: relative;\n    display: flex;\n    flex-direction: column;\n}\n\n.hc-input,\n.hc-textarea,\n.hc-select {\n    width: 100%;\n    border: var(--hc-input-border-width) solid var(--hc-border-color);\n    border-radius: var(--hc-input-radius);\n    padding: var(--hc-input-padding);\n    font-size: var(--hc-input-font-size);\n    transition: border-color var(--hc-transition-duration) var(--hc-transition-timing), \n                box-shadow var(--hc-transition-duration) var(--hc-transition-timing);\n    background: var(--hc-bg-color);\n    font-family: var(--hc-font-family);\n}\n\n.hc-input:focus,\n.hc-textarea:focus,\n.hc-select:focus {\n    border-color: var(--hc-primary-color);\n    box-shadow: 0 0 0 var(--hc-focus-shadow-size) rgba(25, 118, 210, 0.2);\n    outline: none;\n}\n\n.hc-input.hc-error,\n.hc-textarea.hc-error,\n.hc-select.hc-error {\n    border-color: var(--hc-error-color);\n    background-color: var(--hc-error-color-bg);\n}\n\n.hc-textarea {\n    min-height: var(--hc-textarea-min-height);\n    resize: vertical;\n}\n\n.hc-checkbox-group label {\n    display: flex;\n    align-items: center;\n    gap: var(--hc-checkbox-gap);\n    font-size: var(--hc-checkbox-font-size);\n}\n\n\/* Estilos para checkbox con error *\/\n.hc-checkbox-group label.hc-error {\n    color: var(--hc-error-color);\n}\n\n.hc-checkbox-group input[type=\"checkbox\"].hc-error {\n    accent-color: var(--hc-error-color);\n}\n\n.hc-checkbox-group input[type=\"checkbox\"].hc-error + span {\n    color: var(--hc-error-color);\n}\n\n.hc-submit {\n    width: 100%;\n    background: var(--hc-primary-color);\n    color: #fff;\n    border: none;\n    padding: var(--hc-button-padding);\n    border-radius: var(--hc-input-radius);\n    font-size: 16px;\n    font-weight: 600;\n    margin-top: var(--hc-name-row-gap);\n    cursor: pointer;\n    transition: background var(--hc-transition-duration) var(--hc-transition-timing);\n}\n\n.hc-submit:hover {\n    background: #135ba8;\n}\n\n.hc-form-spinner {\n    position: absolute;\n    inset: 0;\n    background: rgba(255, 255, 255, 0.85);\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    opacity: 0;\n    pointer-events: none;\n    transition: opacity var(--hc-transition-duration) var(--hc-transition-timing);\n    border-radius: var(--hc-container-radius);\n}\n\n.hc-form-container.is-loading .hc-form-spinner {\n    opacity: 1;\n    pointer-events: all;\n}\n\n.hc-form-container.is-loading .hc-form {\n    opacity: 0.5;\n}\n\n.hc-spinner {\n    width: 48px;\n    height: 48px;\n    border: 4px solid rgba(25, 118, 210, 0.2);\n    border-top-color: #1976d2;\n    border-radius: 50%;\n    animation: hc-spin 0.8s linear infinite;\n}\n\n@keyframes hc-spin {\n    to {\n        transform: rotate(360deg);\n    }\n}\n\n.hc-field.floating .hc-floating-inner {\n    position: relative;\n    width: 100%;\n    display: flex;\n}\n\n.hc-field.floating .hc-floating-inner label {\n    position: absolute;\n    top: 50%;\n    left: 12px;\n    transform: translateY(-50%);\n    color: var(--hc-label-color);\n    pointer-events: none;\n    transition: var(--hc-transition-duration) var(--hc-transition-timing);\n    background: var(--hc-bg-color);\n    padding: 0 4px;\n    font-size: 14px;\n    font-weight: 400;\n}\n\n.hc-field.floating .hc-floating-inner .hc-input,\n.hc-field.floating .hc-floating-inner .hc-textarea {\n    padding: 10px 10px 6px;\n    width: 100%\n}\n\n.grecaptcha-badge{\n    display: none !important;\n}\n\n.hc-field.floating .hc-floating-inner .hc-input:focus+label,\n.hc-field.floating .hc-floating-inner .hc-textarea:focus+label,\n.hc-field.floating .hc-floating-inner .hc-input:not(:placeholder-shown)+label,\n.hc-field.floating .hc-floating-inner .hc-textarea:not(:placeholder-shown)+label {\n    top: 0px;\n    font-size: var(--hc-label-font-size-small);\n    color: var(--hc-text-color);\n    font-weight: 600;\n}\n\n\/* Label con fondo rojo cuando el input tiene error *\/\n.hc-field.floating .hc-floating-inner .hc-input.hc-error+label,\n.hc-field.floating .hc-floating-inner .hc-textarea.hc-error+label {\n    background-color: var(--hc-error-color-bg);\n    color: var(--hc-error-color);\n}\n\n.co-feedback-container{\n    display: none !important;\n}\n\n.hc-phone-field .hc-phone-wrapper {\n    display: flex;\n    gap: var(--hc-name-row-gap);\n    flex-direction: row;\n}\n\n.hc-phone-field.floating .hc-floating-inner label {\n    top: 0px !important;\n    z-index: 11 !important;\n}\n\n\/* Label del campo de tel\u00e9fono con fondo rojo cuando hay error *\/\n.hc-phone-field.floating .hc-floating-inner .hc-phone-input-wrapper input.hc-error+label {\n    background-color: var(--hc-error-color-bg) !important;\n    color: var(--hc-error-color) !important;\n}\n.hc-phone-wrapper .hc-select-block,\n.hc-phone-wrapper .hc-field {\n    flex: 1;\n    min-width: 160px;\n}\n\n.hc-select-block label {\n    display: block;\n    font-size: 12px;\n    font-weight: 600;\n    text-transform: uppercase;\n    letter-spacing: 0.04em;\n    color: #666;\n    margin-bottom: 6px;\n}\n\n.hc-form-default {\n    border: 1px dashed #bbb;\n    padding: 16px;\n    margin-bottom: 20px;\n    background: #fafafa;\n    font-style: italic;\n    color: #555;\n    text-align: center;\n}\n\n\/* Grid 2x2 para los selects de programa *\/\n.hc-selects-grid {\n    display: grid;\n    grid-template-columns: repeat(2, 1fr);\n    gap: 16px;\n}\n\n\/* Si el grid est\u00e1 vac\u00edo (sin selects), quitar el margin *\/\n.hc-selects-grid:empty {\n    margin-bottom: 0;\n    display: none;\n}\n\n\/* Skeleton Loading Styles - Barra horizontal \u00fanica *\/\n.hc-skeleton-field {\n    position: relative;\n    overflow: hidden;\n    margin-bottom: 18px;\n}\n\n.hc-skeleton {\n    width: 100%;\n    height: 35px;\n    background: #f0f0f0;\n    border-radius: 8px;\n    position: relative;\n    overflow: hidden;\n}\n\n.hc-skeleton-line {\n    width: 100%;\n    height: 100%;\n    background: linear-gradient(\n        90deg,\n        #f0f0f0 0%,\n        #e0e0e0 50%,\n        #f0f0f0 100%\n    );\n    background-size: 200% 100%;\n    animation: skeleton-loading 1.5s ease-in-out infinite;\n}\n\n@keyframes skeleton-loading {\n    0% {\n        background-position: 200% 0;\n    }\n    100% {\n        background-position: -200% 0;\n    }\n}\n\n\/* Si el grid tiene un \u00faltimo hijo, a\u00f1adir margin-bottom *\/\n.hc-selects-grid:has(:last-child) {\n    margin-bottom: 16px;\n}\n\n\/* Resetear margin-bottom de los campos dentro del grid *\/\n.hc-selects-grid .hc-field {\n    margin-bottom: 0;\n}\n\n\/* Si hay 1 select: 100% *\/\n.hc-selects-grid .hc-field:only-child {\n    grid-column: 1 \/ -1;\n}\n\n\/* Si hay 3 selects: el tercero ocupa 100% *\/\n.hc-selects-grid .hc-field:nth-child(3):nth-last-child(1) {\n    grid-column: 1 \/ -1;\n}\n\n.hc-form-status {\n    font-size: 14px;\n}\n\n.hc-form-status.success {\n    color: #2e7d32;\n}\n\n.hc-form-status.error {\n    color: #c62828;\n    text-align: center;\n    padding-top: 15px;\n}\n\n\/* Mensaje de \u00e9xito fuera del formulario (solo cuando no hay redirect) *\/\n.hc-form-success-message {\n    min-height: 20px;\n    font-size: 18px;\n    text-align: center;\n    padding: 15px;\n    margin-top: 20px;\n    margin-bottom: 20px;\n    border-radius: var(--hc-input-radius);\n    background-color: #f1f8f4;\n    color: #2e7d32;\n    font-weight: 500;\n}\n\n.hc-form-success-message.success {\n    color: #2e7d32;\n}\n\n\/* Cuando el formulario tiene \u00e9xito, ocultar el formulario y centrar el mensaje *\/\n.hc-form-container.hc-form-success {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n    min-height: 300px;\n    padding: 40px 30px;\n}\n\n.hc-form-container.hc-form-success .hc-form-header {\n    display: none !important;\n}\n\n.hc-form-container.hc-form-success .hc-form {\n    display: none !important;\n}\n\n.hc-form-container.hc-form-success .hc-form-spinner {\n    display: none !important;\n}\n\n.hc-form-container.hc-form-success .hc-form-status {\n    display: block !important;\n    width: 90%;\n    max-width: 600px;\n    text-align: center;\n    font-size: 20px;\n    font-weight: 500;\n    line-height: 1.6;\n    padding: 30px;\n    margin: 0;\n    color: #2e7d32;\n    background-color: #f1f8f4;\n    border: 0px;\n}\n\n.hc-form-container.hc-form-success .hc-form-status.success {\n    color: #2e7d32;\n}\n\n\/* ===== Sistema adaptativo de tel\u00e9fono ===== *\/\n\n\/* Por defecto: selector de prefijos OCULTO (para Form Guard \/ None) *\/\n.hc-phone-field-simple .hc-phone-prefix {\n    display: none !important;\n}\n\n.hc-phone-field-simple .hc-floating-inner {\n    display: block;\n}\n\n.hc-phone-field-simple .hc-phone-input-wrapper {\n    width: 100%;\n    display: flex;\n}\n\n\/* Cuando se necesita selector (clearoutphone): mostrar en flex *\/\n.hc-phone-field-with-prefix .hc-phone-prefix {\n    display: block !important;\n    width: var(--hc-phone-prefix-width);\n    flex-shrink: 0;\n}\n\n.hc-phone-field-with-prefix .hc-floating-inner {\n    display: flex;\n    gap: var(--hc-phone-prefix-gap);\n    align-items: stretch;\n}\n\n.hc-phone-field-with-prefix .hc-phone-input-wrapper {\n    flex: 1;\n    position: relative;\n    display: flex;\n    flex-direction: row;\n}\n\n.hc-phone-input-wrapper > .co-input-container {\n    display: flex !important;\n}\n\n.hc-phone-input-wrapper input[type=\"tel\"] {\n    display: flex !important;\n}\n\n\/* Labels flotantes funcionan en ambos modos *\/\n.hc-phone-input-wrapper {\n    position: relative;\n}\n\n.hc-phone-input-wrapper label {\n    position: absolute;\n    left: 12px;\n    top: 50%;\n    transform: translateY(-50%);\n    transition: all var(--hc-transition-duration) var(--hc-transition-timing);\n    pointer-events: none;\n    color: var(--hc-label-color);\n    font-size: var(--hc-label-font-size);\n}\n\n.hc-phone-input-wrapper input:focus + label,\n.hc-phone-input-wrapper input:not(:placeholder-shown) + label {\n    top: -8px;\n    font-size: var(--hc-label-font-size-small);\n    background: var(--hc-bg-color);\n}\n\n.hc-phone-input-wrapper input.hc-error + label {\n    background-color: var(--hc-error-color-bg) !important;\n    color: var(--hc-error-color) !important;\n    padding: 0 4px;\n}\n\n\/* Estilos de error para campos de tel\u00e9fono *\/\n.hc-phone-prefix.hc-error {\n    border-color: var(--hc-error-color) !important;\n    background-color: var(--hc-error-color-bg) !important;\n    box-shadow: 0 0 0 var(--hc-focus-shadow-size) rgba(220, 53, 69, 0.25);\n}\n\n.hc-phone-input-wrapper input.hc-error {\n    border-color: var(--hc-error-color) !important;\n    background-color: var(--hc-error-color-bg) !important;\n}\n\n\/* ===================================\n   PERSONALIZACI\u00d3N\n   ===================================\n   \n   Para personalizar el formulario, puedes sobreescribir las variables CSS\n   en tu archivo de CSS personalizado (healthcademia-zoho-css.php):\n   \n   Ejemplo:\n   \n   :root {\n       --hc-primary-color: #ff5722;\n       --hc-container-radius: 24px;\n       --hc-name-row-gap: 20px;\n   }\n   \n   Variables disponibles:\n   \n   Espaciados:\n   - --hc-container-padding\n   - --hc-field-margin\n   - --hc-name-row-gap\n   - --hc-header-gap\n   - --hc-checkbox-gap\n   - --hc-phone-prefix-gap\n   \n   Bordes:\n   - --hc-container-radius\n   - --hc-input-radius\n   - --hc-input-border-width\n   \n   Colores:\n   - --hc-primary-color\n   - --hc-error-color\n   - --hc-bg-color\n   - --hc-border-color\n   - --hc-text-color\n   - --hc-label-color\n   \n   Tipograf\u00eda:\n   - --hc-font-family\n   - --hc-input-font-size\n   - --hc-label-font-size\n   - --hc-checkbox-font-size\n   \n   Otros:\n   - --hc-transition-duration\n   - --hc-button-padding\n   - --hc-phone-prefix-width\n   \n=================================== *\/\n<\/style>\n<style type=\"text\/css\">\n\/* Healthcademia Custom CSS *\/\n\/* ============================================\r\n   Healthcademia Form - CSS Personalizado\r\n   ============================================\r\n   Personaliza las clases principales del formulario.\r\n   Edita los valores seg\u00fan tus necesidades de dise\u00f1o.\r\n   ============================================ *\/\r\n\r\n:root {\r\n    \/* Color principal del formulario *\/\r\n    --hc-primary-color: #b8be15;\r\n    \r\n    \/* Hacer el formulario m\u00e1s compacto *\/\r\n    --hc-container-padding: 0px;\r\n    --hc-field-margin: 12px;\r\n    --hc-name-row-gap: 18px;\r\n    \r\n    \/* Bordes m\u00e1s redondeados *\/\r\n    --hc-container-radius: 24px;\r\n    --hc-input-radius: 12px;\r\n    \r\n    \/* Fuente m\u00e1s grande *\/\r\n    --hc-input-font-size: 16px;\r\n}\r\n\r\n\/* ============================================\r\n   CONTENEDOR PRINCIPAL\r\n   ============================================ *\/\r\n.hc-form-container {\r\n    background: transparent !important;\r\n    border-radius: 0px;\r\n    \/* padding: 30px; *\/\r\n    border: 0px solid #e0e0e0; \r\nmargin-top: 20px;\r\n    \/* font-family: \"Inter\", Arial, sans-serif; *\/\r\n}\r\n\r\n\/* ============================================\r\n   HEADER DEL FORMULARIO\r\n   ============================================ *\/\r\n.hc-form-header {\r\n\r\n}\r\n\r\n.hc-form-title {\r\n\r\n}\r\n\r\n\/* ============================================\r\n   FORMULARIO\r\n   ============================================ *\/\r\n.hc-form {\r\n\r\n}\r\n\r\n\/* ============================================\r\n   CAMPOS DEL FORMULARIO\r\n   ============================================ *\/\r\n.hc-field {\r\n\r\n}\r\n\r\n\/* ============================================\r\n   INPUTS, TEXTAREAS Y SELECTS\r\n   ============================================ *\/\r\n.hc-input,\r\n.hc-textarea,\r\n.hc-select {\r\n    border: 1px solid #acaeaf !important; \r\nborder-radius: 5px !important;\r\n    \/* background: #fff; *\/\r\nfont-size: 14px !important;\r\n\r\n}\r\n\r\n\/* Estados de focus *\/\r\n.hc-input:focus,\r\n.hc-textarea:focus,\r\n.hc-select:focus {\r\n    \/* border-color: #1976d2; *\/\r\n    \/* box-shadow: 0 0 0 2px rgba(25, 118, 210, 0.2); *\/\r\n}\r\n\r\n\/* Estados de error *\/\r\n.hc-input.hc-error,\r\n.hc-textarea.hc-error,\r\n.hc-select.hc-error {\r\n    \/* border-color: #d32f2f; *\/\r\n}\r\n\r\n\/* Textarea espec\u00edfico *\/\r\n.hc-textarea {\r\n\r\n}\r\n\r\n\/* ============================================\r\n   CAMPOS FLOTANTES (Floating Labels)\r\n   ============================================ *\/\r\n\r\n.hc-phone-field.floating .hc-floating-inner label{\r\nfont-size: 12px;\r\nborder-radius: 5px;\r\n}\r\n\r\n.hc-field.floating .hc-floating-inner label {\r\nwidth: auto;\r\n\r\n\r\n}\r\n\r\n.hc-field.floating .hc-floating-inner .hc-input:focus + label,\r\n.hc-field.floating .hc-floating-inner .hc-textarea:focus + label,\r\n.hc-field.floating .hc-floating-inner .hc-input:not(:placeholder-shown) + label,\r\n.hc-field.floating .hc-floating-inner .hc-textarea:not(:placeholder-shown) + label {\r\nfont-size: 12px;\r\nborder-radius: 5px;\r\n}\r\n\r\n\/* ============================================\r\n   CAMPO DE TEL\u00c9FONO\r\n   ============================================ *\/\r\n.hc-phone-field .hc-phone-wrapper {\r\n\r\n}\r\n\r\n.hc-select-block label {\r\n    \/* color: #666; *\/\r\n}\r\n\r\n\r\n\/* ============================================\r\n   CHECKBOXES\r\n   ============================================ *\/\r\n.hc-checkbox-group label {\r\nfont-size: 12px; \r\nline-height: 1.1em;\r\nmargin-bottom: 5px;\r\n}\r\n\r\n.hc-checkbox-group label a{\r\ntext-decoration: underline !important;\r\n}\r\n.hc-checkbox-group label.hc-error {\r\n    \/* color: #d32f2f; *\/\r\n}\r\n\r\n\/* ============================================\r\n   BOT\u00d3N DE ENV\u00cdO\r\n   ============================================ *\/\r\n.hc-submit {\r\n    \/* background: #1976d2; *\/\r\n    \/* color: #fff; *\/\r\n}\r\n\r\n.hc-submit:hover {\r\n    background: #bcca30;\r\n}\r\n\r\n.hc-submit:active {\r\n    \/* transform: scale(0.98); *\/\r\n}\r\n\r\n\/* ============================================\r\n   SPINNER DE CARGA\r\n   ============================================ *\/\r\n.hc-form-spinner {\r\n    \/* background: rgba(255, 255, 255, 0.85); *\/\r\n}\r\n\r\n.hc-spinner {\r\n    \/* width: 48px; *\/\r\n    \/* height: 48px; *\/\r\n    \/* border: 4px solid rgba(25, 118, 210, 0.2); *\/\r\n    \/* border-top-color: #1976d2; *\/\r\n}\r\n\r\n\/* ============================================\r\n   MENSAJES DE ESTADO\r\n   ============================================ *\/\r\n.hc-form-status.success {\r\n    \/* color: #2e7d32; *\/\r\n}\r\n\r\n.hc-form-status.error {\r\n    \/* color: #c62828; *\/\r\n}\r\n\r\n\/* ============================================\r\n   ESTADO DE \u00c9XITO (Formulario oculto)\r\n   ============================================ *\/\r\n.hc-form-container.hc-form-success {\r\n\r\n}\r\n\r\n.hc-form-container.hc-form-success .hc-form-status {\r\n    \/* background-color: #f1f8f4; *\/\r\n    \/* color: #2e7d32; *\/\r\n}\r\n\r\n\/* ============================================\r\n   RESPONSIVE (Ejemplo)\r\n   ============================================ *\/\r\n@media screen and (max-width: 768px) {\r\n    .hc-form-container {\r\n\r\n    }\r\n    \r\n    .hc-phone-field .hc-phone-wrapper {\r\n\r\n    }\r\n    \r\n    .hc-selects-grid {\r\n\r\n    }\r\n}\r\n\r\n\/* ============================================\r\n   PERSONALIZACIONES ADICIONALES\r\n   ============================================ *\/\r\n\/* A\u00f1ade tus estilos personalizados aqu\u00ed *\/\n<\/style>\n<div class=\"healthcademia-form-wrapper\" data-form-id=\"formulario-base\" data-redirect=\"https:\/\/qa.amirlatam.com\/colombia\/gracias\/\" data-privacy-url=\"https:\/\/qa.amirlatam.com\/colombia\/privacy-policy\/\" data-success-message=\"\u00a1Hemos recibido tus datos! Nos pondremos en contacto contigo muy pronto.\" data-rest-nonce=\"ff18ce31e1\" data-region=\"LATAM\" data-recaptcha-key=\"6Lf_bScsAAAAAABqrIROKvoQD5XOzjoGTUmhKA-x\"><div class=\"hc-form-container\" id=\"hc_form_1\"\n     data-hc-validate=\"1\"\n     data-rest-leads=\"https:\/\/qa.amirlatam.com\/colombia\/wp-json\/healthcademia\/v1\/leads\"\n     data-rest-programs=\"https:\/\/qa.amirlatam.com\/colombia\/wp-json\/healthcademia\/v1\/programas\"\n     data-rest-nonce=\"ff18ce31e1\"\n     data-program-id=\"\"\n     data-redirect=\"https:\/\/qa.amirlatam.com\/colombia\/gracias\/\"\n     data-region=\"LATAM\"\n     data-country-prefixes=\"{&quot;Espa\u00f1a&quot;:&quot;+34&quot;,&quot;Argentina&quot;:&quot;+54&quot;,&quot;Chile&quot;:&quot;+56&quot;,&quot;Colombia&quot;:&quot;+57&quot;,&quot;M\u00e9xico&quot;:&quot;+52&quot;,&quot;Per\u00fa&quot;:&quot;+51&quot;,&quot;Venezuela&quot;:&quot;+58&quot;,&quot;Otro&quot;:&quot;&quot;}\"\n     data-clearout-key=\"6c7990b80c6b598123f804ec0066078d:bcd9da28edee065eb67bbf61caf6e128fcc207a8efd7a710acd0ce72542f716c\" data-display-config=\"{&quot;convocatoria&quot;:false,&quot;sede&quot;:false,&quot;modalidad&quot;:false,&quot;edicion&quot;:false}\">\n    <form class=\"hc-form hc-api-form\" id=\"form_dossier\" novalidate>\n        <input type=\"hidden\" name=\"program_id\" value=\"\">\n        <input type=\"hidden\" name=\"program_name\" value=\"\">\n        \n        <div class=\"hc-name-row\">\n            <div class=\"hc-field floating\">\n                <div class=\"hc-floating-inner\">\n                    <input type=\"text\" name=\"first_name\" class=\"hc-input\" placeholder=\" \" data-only-letters=\"true\" required>\n                    <label>Nombre *<\/label>\n                <\/div>\n            <\/div>\n            <div class=\"hc-field floating\">\n                <div class=\"hc-floating-inner\">\n                    <input type=\"text\" name=\"last_name\" class=\"hc-input\" placeholder=\" \" data-only-letters=\"true\" required>\n                    <label>Apellidos *<\/label>\n                <\/div>\n            <\/div>\n        <\/div>\n        <div class=\"hc-field floating\">\n            <div class=\"hc-floating-inner\">\n                <input type=\"email\" name=\"email\" class=\"hc-input\" placeholder=\" \" value=\"\" required>\n                <label>Correo electr\u00f3nico *<\/label>\n            <\/div>\n        <\/div>\n                <div class=\"hc-field hc-phone-field floating hc-phone-field-with-prefix\">\n            <div class=\"hc-floating-inner\">\n                <!-- Selector de prefijos (solo visible para clearoutphone) -->\n                <select name=\"phone_prefix\" class=\"hc-select hc-phone-prefix\">\n                    <option value=\"+34\" data-country=\"ES\">ES +34<\/option>\n                    <!-- Centroam\u00e9rica -->\n                    <option value=\"+52\" data-country=\"MX\">MX +52<\/option>\n                    <option value=\"+502\" data-country=\"GT\">GT +502<\/option>\n                    <option value=\"+503\" data-country=\"SV\">SV +503<\/option>\n                    <option value=\"+504\" data-country=\"HN\">HN +504<\/option>\n                    <option value=\"+505\" data-country=\"NI\">NI +505<\/option>\n                    <option value=\"+506\" data-country=\"CR\">CR +506<\/option>\n                    <option value=\"+507\" data-country=\"PA\">PA +507<\/option>\n                    <option value=\"+501\" data-country=\"BZ\">BZ +501<\/option>   \n                    <option value=\"+509\" data-country=\"HT\">HT +509<\/option>     \n\n                    <!-- Caribe LATAM (NANP con m\u00faltiples prefijos) -->\n                    <option value=\"+1809\" data-country=\"DO\">DO +1809<\/option>\n                    <option value=\"+1829\" data-country=\"DO\">DO +1829<\/option>\n                    <option value=\"+1849\" data-country=\"DO\">DO +1849<\/option>\n                    <option value=\"+1787\" data-country=\"PR\">PR +1787<\/option>\n                    <option value=\"+1939\" data-country=\"PR\">PR +1939<\/option>\n                    <option value=\"+53\"   data-country=\"CU\">CU +53<\/option>\n                    <option value=\"+1876\" data-country=\"JM\">JM +1876<\/option>\n\n                    <!-- Sudam\u00e9rica -->\n                    <option value=\"+57\"  data-country=\"CO\" selected>CO +57<\/option>\n                    <option value=\"+58\"  data-country=\"VE\">VE +58<\/option>\n                    <option value=\"+593\" data-country=\"EC\">EC +593<\/option>\n                    <option value=\"+51\"  data-country=\"PE\">PE +51<\/option>\n                    <option value=\"+591\" data-country=\"BO\">BO +591<\/option>\n                    <option value=\"+56\"  data-country=\"CL\">CL +56<\/option>\n                    <option value=\"+54\"  data-country=\"AR\">AR +54<\/option>\n                    <option value=\"+598\" data-country=\"UY\">UY +598<\/option>\n                    <option value=\"+595\" data-country=\"PY\">PY +595<\/option>\n                    <option value=\"+55\"  data-country=\"BR\">BR +55<\/option>\n                    <option value=\"+592\" data-country=\"GY\">GY +592<\/option>   \n                    <option value=\"+597\" data-country=\"SR\">SR +597<\/option> \n                    <option value=\"+594\" data-country=\"GF\">GF +594<\/option> \n                <\/select>\n                <div class=\"hc-phone-input-wrapper\">\n                                        <input type=\"tel\" name=\"phone\" class=\"hc-input\" placeholder=\"612 345 678\" data-clearout-phone-field value=\"\" required>\n                    <label>Tel\u00e9fono *<\/label>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        \n        <input type=\"hidden\" name=\"utm_campaign\">\n        <input type=\"hidden\" name=\"utm_source\">\n        <input type=\"hidden\" name=\"utm_medium\">\n        <input type=\"hidden\" name=\"utm_term\">\n        <input type=\"hidden\" name=\"utm_content\">\n        <input type=\"hidden\" name=\"traffic_source\" value=\"\">\n        <input type=\"hidden\" name=\"lead_source\" value=\"P\u00e1gina Web\">\n        <input type=\"hidden\" name=\"tipo_origen\" value=\"Digital\">\n        <input type=\"hidden\" name=\"lead_status\" value=\"Sin Gesti\u00f3n\">\n        <input type=\"hidden\" name=\"region\" value=\"LATAM\">\n        <!-- Campo oculto para capturar GCLID de Google Ads (Zoho CRM) -->\n        <input type=\"hidden\" id=\"zc_gad\" name=\"zc_gad\" value=\"\">\n        <input type=\"hidden\" name=\"FormURL\" value=\"\">\n\n\n        <div class=\"hc-checkbox-group hc-legal-checkboxes\">\n            <label>\n                <input type=\"checkbox\" name=\"privacy\" required>\n                <span>Acepto la <a href=\"https:\/\/qa.amirlatam.com\/colombia\/privacy-policy\/\" data-privacy-link=\"true\" target=\"_blank\" rel=\"noopener\">pol\u00edtica de privacidad<\/a> *<\/span>\n            <\/label>\n        <\/div>\n        <div class=\"hc-checkbox-group\">\n            <label>\n                <input type=\"checkbox\" name=\"marketing\">\n                <span>Acepto recibir comunicaciones comerciales<\/span>\n            <\/label>\n        <\/div>\n\n        <div class=\"hc-form-status\" aria-live=\"polite\"><\/div>\n        <button type=\"submit\" class=\"hc-submit\">ASESOR\u00cdA PERSONALIZADA<\/button>\n    <\/form>\n    <div class=\"hc-form-success-message\" aria-live=\"polite\" style=\"display: none;\"><\/div>\n    <div class=\"hc-form-spinner\" aria-hidden=\"true\">\n        <div class=\"hc-spinner\"><\/div>\n    <\/div>\n<\/div>\n<style>\n.hc-form-container[data-hc-validate] .hc-submit:disabled {\n    opacity: 0.45;\n    cursor: not-allowed;\n    pointer-events: none;\n}\n.hc-form-container .hc-field-error {\n    display: block;\n    color: #d32f2f;\n    font-size: 12px;\n    margin-top: 4px;\n    line-height: 1.3;\n}\n<\/style>\n<script>\n\/\/ GTM: disparar evento de lead solicitud con nombre del programa (o fallback)\ndocument.addEventListener('DOMContentLoaded', function() {\n    document.querySelectorAll('.hc-form-container[data-hc-validate] form').forEach(function(form) {\n        var urlInput = form.querySelector('input[name=\"FormURL\"]');\n        if (urlInput && !urlInput.value) {\n            urlInput.value = window.location.href;\n        }\n        form.addEventListener('submit', function() {\n            var programInput = form.querySelector('[name=\"program_name\"]');\n            var selectedProgramName = programInput ? (programInput.value || '').trim() : '';\n            window.dataLayer = window.dataLayer || [];\n            window.dataLayer.push({\n                event: 'generacion_lead_solicitud',\n                form_name: selectedProgramName || 'formulario_solicitud'\n            });\n        });\n    });\n});\n\nif (!window._hcValidateListening) {\n    window._hcValidateListening = true;\n    console.info('[HC][Solicitud] init: libphonenumber loaded =', !!(window.libphonenumber && window.libphonenumber.parsePhoneNumberFromString));\n\n    function _hcIsValidEmail(val) {\n        return \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(val.trim());\n    }\n    function _hcIsValidPhone(val, form) {\n        var raw = (val || '').trim();\n        var digitsOnly = raw.replace(\/[\\s\\-().]+\/g, '');\n        var useLib = !!(window.libphonenumber && window.libphonenumber.parsePhoneNumberFromString);\n        if (!useLib) {\n            console.warn('[HC][Solicitud] libphonenumber no disponible, usando fallback simple');\n        }\n        var prefix = '';\n        if (form) {\n            var sel = form.querySelector('.hc-phone-prefix');\n            if (sel && sel.value) prefix = (sel.value || '').trim();\n        }\n        var full = digitsOnly;\n        if (digitsOnly && digitsOnly[0] !== '+' && prefix) {\n            full = prefix + digitsOnly;\n        } else if (digitsOnly && digitsOnly[0] === '+') {\n            full = digitsOnly;\n        }\n        if (useLib) {\n            try {\n                var phone = window.libphonenumber.parsePhoneNumberFromString(full);\n                if (!phone || !phone.isValid()) return false;\n            } catch (e) {\n                console.error('[HC][Solicitud] error parseando tel\u00e9fono con libphonenumber', e);\n                return false;\n            }\n        } else {\n            if (!\/^\\d{7,15}$\/.test(digitsOnly)) return false;\n        }\n        var checkSeq = digitsOnly.replace(\/^\\+\/, '');\n        if (\/^(\\d)\\1+$\/.test(checkSeq)) return false;\n        var asc = true, desc = true;\n        for (var i = 1; i < checkSeq.length; i++) {\n            var cur = parseInt(checkSeq[i], 10), prev = parseInt(checkSeq[i-1], 10);\n            if (isNaN(cur) || isNaN(prev)) { asc = false; desc = false; break; }\n            if (cur !== prev + 1) asc = false;\n            if (cur !== prev - 1) desc = false;\n        }\n        if (asc || desc) return false;\n        return true;\n    }\n    function _hcIsValidName(val) {\n        var normalized = val.replace(\/\\s+\/g, '');\n        if (normalized.length < 2) return false;\n        var firstChar = normalized.charAt(0).toLowerCase();\n        for (var i = 1; i < normalized.length; i++) {\n            if (normalized.charAt(i).toLowerCase() !== firstChar) {\n                return true;\n            }\n        }\n        return false;\n    }\n    function _hcGetSelectedPrefixInfo(form) {\n        var sel = form && form.querySelector('.hc-phone-prefix');\n        if (!sel) return { prefix: '', country: '' };\n        var opt = sel.options[sel.selectedIndex] || null;\n        return {\n            prefix: (sel.value || '').trim(),\n            country: opt ? (opt.getAttribute('data-country') || '') : ''\n        };\n    }\n    function _hcGuessCountryForDigits(digits, form) {\n        if (!(window.libphonenumber && window.libphonenumber.parsePhoneNumberFromString)) return null;\n        var sel = form && form.querySelector('.hc-phone-prefix');\n        if (!sel) return null;\n        for (var i = 0; i < sel.options.length; i++) {\n            var p = (sel.options[i].value || '').trim();\n            if (!p) continue;\n            try {\n                var phone = window.libphonenumber.parsePhoneNumberFromString(p + digits);\n                if (phone && phone.isValid()) {\n                    var cc = (phone.country || sel.options[i].getAttribute('data-country') || '');\n                    return { country: cc, prefix: p };\n                }\n            } catch (e) { \/* noop *\/ }\n        }\n        return null;\n    }\n    function _hcCountryLabel(code) {\n        var map = {\n            MX: 'M\u00e9xico', GT: 'Guatemala', ES: 'Espa\u00f1a', CO: 'Colombia', PE: 'Per\u00fa', EC: 'Ecuador',\n            CR: 'Costa Rica', BO: 'Bolivia', CL: 'Chile', AR: 'Argentina', UY: 'Uruguay', PY: 'Paraguay',\n            BR: 'Brasil', DO: 'Rep\u00fablica Dominicana', PR: 'Puerto Rico', CU: 'Cuba', JM: 'Jamaica',\n            PA: 'Panam\u00e1', NI: 'Nicaragua', HN: 'Honduras', SV: 'El Salvador', BZ: 'Belice',\n            GY: 'Guyana', SR: 'Surinam', GF: 'Guayana Francesa', HT: 'Hait\u00ed', VE: 'Venezuela'\n        };\n        return map[code] || code || '';\n    }\n    function _hcCheckValidity(form) {\n        return Array.from(form.querySelectorAll('[required]')).every(function(f) {\n            if (f.type === 'checkbox') return f.checked;\n            var v = (f.value || '').trim();\n            if (v === '') return false;\n            if (f.type === 'email') return _hcIsValidEmail(v);\n            if (f.type === 'tel') return _hcIsValidPhone(v, form);\n            if (f.name === 'first_name' || f.name === 'last_name') return _hcIsValidName(v);\n            return true;\n        });\n    }\n    function _hcUpdateBtn(container) {\n        var form = container.querySelector('form');\n        var btn = form && form.querySelector('.hc-submit');\n        if (btn) {\n            var newDisabled = !_hcCheckValidity(form);\n            if (btn._hcPrevDisabled !== newDisabled) {\n                console.info('[HC][Solicitud] submit ' + (newDisabled ? 'disabled' : 'enabled'));\n                btn._hcPrevDisabled = newDisabled;\n            }\n            btn.disabled = newDisabled;\n            if (!newDisabled) {\n                \/\/ Si el formulario completo es v\u00e1lido, limpiar mensajes residuales\n                container.querySelectorAll('.hc-field-error').forEach(function(n){ n.remove(); });\n            }\n        }\n    }\n    function _hcDisableBtn(container) {\n        var btn = container.querySelector('form .hc-submit');\n        if (btn) btn.disabled = true;\n    }\n\n    function _hcGetFieldError(f) {\n        var v = (f.value || '').trim();\n        if (f.type === 'checkbox') return f.checked ? '' : 'Este campo es obligatorio';\n        if (v === '') return 'Este campo es obligatorio';\n        if (f.type === 'email') return _hcIsValidEmail(v) ? '' : 'Correo electr\u00f3nico no v\u00e1lido';\n        if (f.type === 'tel') {\n            var digits = v.replace(\/[\\s\\-().]+\/g, '');\n            if (\/^(\\d)\\1+$\/.test(digits)) return 'El tel\u00e9fono no puede ser d\u00edgitos repetidos';\n            var asc = true, desc = true;\n            for (var i = 1; i < digits.length; i++) {\n                if (parseInt(digits[i]) !== parseInt(digits[i-1]) + 1) asc = false;\n                if (parseInt(digits[i]) !== parseInt(digits[i-1]) - 1) desc = false;\n            }\n            if (asc || desc) return 'El n\u00famero no puede ser una secuencia consecutiva';\n            if (window.libphonenumber && window.libphonenumber.parsePhoneNumberFromString) {\n                var ok = _hcIsValidPhone(v, f.form);\n                if (ok) return '';\n                var selInfo = _hcGetSelectedPrefixInfo(f.form);\n                var guess = _hcGuessCountryForDigits(digits, f.form);\n                if (guess && selInfo && guess.country && selInfo.country && guess.country !== selInfo.country) {\n                    return 'El tel\u00e9fono parece ser de ' + _hcCountryLabel(guess.country) + ' pero el prefijo seleccionado es ' + _hcCountryLabel(selInfo.country) + '. Corrige el prefijo o el n\u00famero.';\n                }\n                return 'Tel\u00e9fono no v\u00e1lido';\n            } else {\n                return \/^\\d{7,15}$\/.test(digits) ? '' : 'Ingresa entre 7 y 15 d\u00edgitos';\n            }\n            return '';\n        }\n        if (f.name === 'first_name' || f.name === 'last_name') {\n            if (v.replace(\/\\s+\/g, '').length < 2) return 'Debe tener al menos 2 letras';\n            if (_hcIsValidName(v) === false) return 'El nombre no puede repetir un solo caracter';\n            return '';\n        }\n        if (f.tagName === 'SELECT') {\n            return (f.value && f.value.trim() !== '') ? '' : 'Selecciona una opci\u00f3n';\n        }\n        return '';\n    }\n    function _hcShowError(field, msg) {\n        var wrapper = field.closest('.hc-field') || field.closest('.hc-checkbox-group') || field.parentElement;\n        var existing = wrapper.querySelector('.hc-field-error');\n        if (msg) {\n            if (!existing) {\n                existing = document.createElement('span');\n                existing.className = 'hc-field-error';\n                wrapper.appendChild(existing);\n            }\n            existing.textContent = msg;\n        } else if (existing) {\n            existing.remove();\n        }\n    }\n    function _hcValidateField(f) {\n        if (!f || !f.hasAttribute('required')) return;\n        var raw = (f.value || '').trim();\n        var isCheckbox = f.type === 'checkbox';\n        var hasValue = isCheckbox ? f.checked : raw !== '';\n        var shouldShow = !!f._hcTouched || hasValue;\n        if (!shouldShow) {\n            _hcShowError(f, '');\n            return;\n        }\n        var msg = _hcGetFieldError(f);\n        _hcShowError(f, msg);\n    }\n\n    document.addEventListener('blur', function(e) {\n        var c = e.target.closest && e.target.closest('.hc-form-container[data-hc-validate]');\n        if (c) {\n            if (e.isTrusted !== false) {\n                e.target._hcTouched = true;\n            }\n            _hcValidateField(e.target);\n            if (e.target && e.target.type === 'tel') {\n                var form = e.target.form;\n                var prefix = '';\n                var sel = form && form.querySelector('.hc-phone-prefix');\n                if (sel && sel.value) prefix = (sel.value || '').trim();\n                var valid = _hcIsValidPhone(e.target.value, form);\n                console.info('[HC][Solicitud] phone check', { prefix: prefix, raw: e.target.value, valid: valid, lib: !!(window.libphonenumber && window.libphonenumber.parsePhoneNumberFromString) });\n            }\n            _hcUpdateBtn(c);\n        }\n    }, true);\n    document.addEventListener('input', function(e) {\n        var c = e.target.closest && e.target.closest('.hc-form-container[data-hc-validate]');\n        if (c) {\n            if (e.isTrusted !== false) {\n                e.target._hcTouched = true;\n            }\n            _hcValidateField(e.target);\n            _hcUpdateBtn(c);\n        }\n    }, true);\n    document.addEventListener('change', function(e) {\n        var c = e.target.closest && e.target.closest('.hc-form-container[data-hc-validate]');\n        if (c) {\n            if (e.isTrusted !== false) {\n                e.target._hcTouched = true;\n            }\n            _hcValidateField(e.target);\n            \/\/ Si cambi\u00f3 el prefijo, revalida tambi\u00e9n el campo tel\u00e9fono para limpiar\/actualizar el error\n            if (e.target.matches && e.target.matches('.hc-phone-prefix')) {\n                var phone = e.target.form && e.target.form.querySelector('input[name=\"phone\"]');\n                if (phone) {\n                    phone._hcTouched = true;\n                    _hcValidateField(phone);\n                }\n            }\n            _hcUpdateBtn(c);\n        }\n    }, true);\n\n    \/\/ Si la librer\u00eda se carga globalmente m\u00e1s tarde, revalidar estados\n    window.addEventListener('hc:phone-lib-ready', function() {\n        document.querySelectorAll('.hc-form-container[data-hc-validate]').forEach(function(c) {\n            var form = c.querySelector('form');\n            if (!form) return;\n            var phone = form.querySelector('input[name=\"phone\"]');\n            if (phone && (phone._hcTouched || (phone.value || '').trim() !== '')) {\n                phone._hcTouched = true;\n                _hcValidateField(phone);\n            }\n            _hcUpdateBtn(c);\n        });\n    });\n\n    document.querySelectorAll('.hc-form-container[data-hc-validate]').forEach(_hcDisableBtn);\n    new MutationObserver(function(mutations) {\n        mutations.forEach(function(m) {\n            m.addedNodes.forEach(function(node) {\n                if (node.nodeType !== 1) return;\n                if (node.matches && node.matches('.hc-form-container[data-hc-validate]')) _hcDisableBtn(node);\n                if (node.querySelectorAll) node.querySelectorAll('.hc-form-container[data-hc-validate]').forEach(_hcDisableBtn);\n            });\n        });\n    }).observe(document.documentElement, { childList: true, subtree: true });\n}\n<\/script><\/div>\n<script type=\"text\/javascript\">\n\/* Healthcademia Default Form JS *\/\n(function() {\n    \/\/ Funci\u00f3n para inicializar el formulario\n    function initForm() {\n        \/\/ Buscar el contenedor - intentar varias formas\n        let container = document.getElementById('hc_form_1_6114');\n        \n        \/\/ Si no se encuentra, buscar por clase como fallback\n        if (!container) {\n            const containers = document.querySelectorAll('.hc-form-container');\n            if (containers.length > 0) {\n                container = containers[containers.length - 1]; \/\/ Tomar el \u00faltimo\n            }\n        }\n        \n        if (!container) {\n            return false;\n        }\n\n        const form = container.querySelector('form');\n        if (!form) {\n            return false;\n        }\n        \n        \/\/ Asegurarse de que el formulario no se env\u00ede de forma tradicional\n        form.setAttribute('novalidate', 'novalidate');\n        if (form.hasAttribute('action')) {\n            form.removeAttribute('action');\n        }\n        if (form.hasAttribute('method')) {\n            form.removeAttribute('method');\n        }\n    \n    const wrapper = container.closest('.healthcademia-form-wrapper');\n    const endpoints = {\n        leads: container.dataset.restLeads,\n        programs: container.dataset.restPrograms\n    };\n    const restNonce = (wrapper && wrapper.dataset.restNonce) || container.dataset.restNonce || '';\n    const redirectUrl = ((wrapper && wrapper.dataset.redirect) || container.dataset.redirect || '').trim();\n    const privacyUrl = (wrapper && wrapper.dataset.privacyUrl) || '';\n    const successMessage = (wrapper && wrapper.dataset.successMessage) || '\u00a1Hemos recibido tus datos! Nos pondremos en contacto contigo muy pronto.';\n    const recaptchaSiteKey = (wrapper && wrapper.dataset.recaptchaKey) || '';\n    const programId = container.dataset.programId;\n    let countryPrefixes = {};\n    let defaultRegion = container.dataset.region || '';\n    try {\n        countryPrefixes = JSON.parse(container.dataset.countryPrefixes || '{}');\n    } catch (error) {\n        countryPrefixes = {};\n    }\n    \/\/ JavaScript solo recoge la respuesta del servidor\n    const emailInput = form.querySelector('input[name=\"email\"]');\n    const phoneInput = form.querySelector('input[name=\"phone\"]');\n    const countrySelect = form.querySelector('select[name=\"country\"]');\n    const regionInput = form.querySelector('input[name=\"region\"]');\n    const statusBox = container.querySelector('.hc-form-status');\n    const successMessageBox = container.querySelector('.hc-form-success-message');\n\n    const setStatus = (state, message) => {\n        if (!statusBox) {\n            return;\n        }\n        if (message) {\n            statusBox.textContent = message;\n            statusBox.className = 'hc-form-status ' + state;\n            statusBox.style.display = 'block';\n        } else {\n            statusBox.textContent = '';\n            statusBox.className = 'hc-form-status';\n            statusBox.style.display = '';\n        }\n    };\n\n    const setSuccessMessage = (message) => {\n        if (!successMessageBox) {\n            return;\n        }\n        if (message) {\n            successMessageBox.textContent = message;\n            successMessageBox.className = 'hc-form-success-message success';\n            successMessageBox.style.display = 'block';\n        } else {\n            successMessageBox.textContent = '';\n            successMessageBox.style.display = 'none';\n        }\n    };\n\n    const setLoading = (flag) => {\n        if (!container) return;\n        if (flag) {\n            container.classList.add('is-loading');\n        } else {\n            container.classList.remove('is-loading');\n        }\n    };\n\n    \/\/ Sanitizar tel\u00e9fono: eliminar todo excepto n\u00fameros, +, (, ), -, ., espacios\n    \/\/ Esto se usa solo al enviar al servidor, no en tiempo real\n    const sanitizePhone = (value) => (value || '').replace(\/[^0-9+()\\-\\s.]\/g, '');\n    \n    \/\/ Funci\u00f3n para permitir caracteres est\u00e1ndar de tel\u00e9fono mientras el usuario escribe\n    \/\/ Permite: n\u00fameros, +, (, ), -, ., espacios\n    \/\/ Ejemplos v\u00e1lidos: +34 612 345 678, (612) 345-678, +34.612.345.678, +34-612-345-678\n    const allowPhoneChars = (value) => {\n        return (value || '').replace(\/[^0-9+()\\-\\s.]\/g, '');\n    };\n    const sanitizeLetters = (value) => (value || '').replace(\/[^A-Za-z\u00c0-\u00ff\\s'-]\/g, '');\n    const getPhonePrefix = () => {\n        if (!countrySelect) {\n            return '';\n        }\n        return countryPrefixes[countrySelect.value] || '';\n    };\n\n    const updateRegionField = () => {\n        if (!regionInput) {\n            return;\n        }\n        \n        \/\/ Si no hay program_id, usar siempre la regi\u00f3n global de la configuraci\u00f3n\n        if (!programId) {\n            regionInput.value = defaultRegion || 'Iberia';\n            return;\n        }\n        \n        \/\/ Si hay program_id, inferir regi\u00f3n del pa\u00eds seleccionado\n        if (!countrySelect || !countrySelect.value) {\n            regionInput.value = defaultRegion || 'Iberia';\n            return;\n        }\n        const countryValue = countrySelect.value.toLowerCase();\n        const iberiaSet = ['espa\u00f1a', 'spain', 'espa\\u00f1a'];\n        regionInput.value = iberiaSet.includes(countryValue) ? 'Iberia' : 'LATAM';\n    };\n\n    if (regionInput && !regionInput.value) {\n        regionInput.value = defaultRegion || 'Iberia';\n    }\n    \n    \/\/ Solo actualizar regi\u00f3n basada en pa\u00eds si hay program_id\n    if (countrySelect && programId) {\n        updateRegionField();\n        countrySelect.addEventListener('change', updateRegionField);\n    } else if (countrySelect && !programId) {\n        \/\/ Si no hay program_id, mantener la regi\u00f3n global siempre\n        updateRegionField();\n    }\n\n    if (phoneInput) {\n        \/\/ Permitir caracteres est\u00e1ndar de tel\u00e9fono en tiempo real (+, (, ), -, espacios)\n        \/\/ Form Guard necesita estos caracteres para validar correctamente\n        phoneInput.addEventListener('input', () => {\n            \/\/ Solo eliminar caracteres no permitidos, pero mantener formato est\u00e1ndar\n            const allowed = allowPhoneChars(phoneInput.value);\n            if (allowed !== phoneInput.value) {\n                phoneInput.value = allowed;\n            }\n            \n            \/\/ Limpiar errores al escribir\n            phoneInput.classList.remove('hc-error');\n            phoneInput.setCustomValidity('');\n        });\n        \n        \/\/ Limpiar error del selector de prefijos tambi\u00e9n\n        const phonePrefixSelect = form.querySelector('select[name=\"phone_prefix\"]');\n        if (phonePrefixSelect) {\n            phonePrefixSelect.addEventListener('change', () => {\n                phonePrefixSelect.classList.remove('hc-error');\n                phoneInput.classList.remove('hc-error');\n                phoneInput.setCustomValidity('');\n            });\n        }\n    }\n    form.querySelectorAll('[data-only-letters=\"true\"]').forEach((input) => {\n        input.addEventListener('input', () => {\n            const sanitized = sanitizeLetters(input.value);\n            if (sanitized !== input.value) {\n                input.value = sanitized;\n            }\n        });\n    });\n\n    const hydrateUTMs = () => {\n        const params = new URLSearchParams(window.location.search);\n        ['utm_campaign','utm_source','utm_medium','utm_term','utm_content'].forEach(key => {\n            const el = form.querySelector('[name=\"' + key + '\"]');\n            if (el && params.get(key)) {\n                el.value = params.get(key);\n            }\n        });\n    };\n\n    const validateForm = () => {\n        let valid = true;\n        const invalidFields = [];\n        \/\/ Primero limpiar todos los errores\n        form.querySelectorAll('[required]').forEach(field => {\n            field.classList.remove('hc-error');\n            \/\/ Limpiar error del label del checkbox tambi\u00e9n\n            if (field.type === 'checkbox') {\n                const label = field.closest('label');\n                if (label) {\n                    label.classList.remove('hc-error');\n                }\n            }\n        });\n        \/\/ Limpiar tambi\u00e9n el prefijo telef\u00f3nico y labels flotantes\n        const phonePrefixSelect = form.querySelector('select[name=\"phone_prefix\"]');\n        if (phonePrefixSelect) {\n            phonePrefixSelect.classList.remove('hc-error');\n        }\n        \n        \/\/ Luego validar y marcar errores\n        form.querySelectorAll('[required]').forEach(field => {\n            let fieldValid = true;\n            \n            if (field.type === 'checkbox') {\n                \/\/ Para checkboxes, validar si est\u00e1 checkeado\n                fieldValid = field.checked;\n            } else {\n                \/\/ Para inputs normales, validar si tiene valor\n                fieldValid = field.value && field.value.trim() !== '';\n            }\n            \n            if (!fieldValid) {\n                field.classList.add('hc-error');\n                \/\/ Para checkboxes, tambi\u00e9n marcar el label\n                if (field.type === 'checkbox') {\n                    const label = field.closest('label');\n                    if (label) {\n                        label.classList.add('hc-error');\n                    }\n                }\n                \/\/ Si es el campo de tel\u00e9fono, tambi\u00e9n marcar el prefijo si est\u00e1 visible\n                if (field.name === 'phone' && phonePrefixSelect) {\n                    const isVisible = window.getComputedStyle(phonePrefixSelect).display !== 'none';\n                    if (isVisible) {\n                        phonePrefixSelect.classList.add('hc-error');\n                    }\n                }\n                valid = false;\n                \/\/ Recopilar nombres de campos inv\u00e1lidos para el mensaje\n                const fieldName = field.getAttribute('name') || field.getAttribute('id') || 'campo';\n                if (field.type === 'checkbox') {\n                    invalidFields.push('aceptar la pol\u00edtica de privacidad');\n                } else {\n                    const label = field.closest('.hc-field')?.querySelector('label');\n                    const labelText = label ? label.textContent.replace('*', '').trim() : fieldName;\n                    invalidFields.push(labelText.toLowerCase());\n                }\n            }\n        });\n        \n        \/\/ Validar email espec\u00edficamente (puede estar vac\u00edo o con formato inv\u00e1lido)\n        if (emailInput) {\n            const emailValue = emailInput.value.trim();\n            if (!emailValue) {\n                \/\/ Email vac\u00edo - ya deber\u00eda estar marcado por [required], pero nos aseguramos\n                if (!emailInput.classList.contains('hc-error')) {\n                    emailInput.classList.add('hc-error');\n                    valid = false;\n                }\n            }\n        }\n        \n        \/\/ Mostrar mensaje de error si hay campos inv\u00e1lidos\n        if (!valid && invalidFields.length > 0) {\n            const message = 'Por favor, revisa el formulario.';\n            setStatus('error', message);\n        }\n        return valid;\n    };\n\n    const validateEmailFormat = () => {\n        if (!emailInput) {\n            return true;\n        }\n        const value = emailInput.value.trim();\n        \/\/ Si est\u00e1 vac\u00edo, no validar formato (ya se valida en validateForm)\n        if (!value) {\n            return true;\n        }\n        const emailRegex = \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/;\n        const isValid = emailRegex.test(value);\n        emailInput.setCustomValidity(isValid ? '' : 'Email err\u00f3neo');\n        if (!isValid) {\n            emailInput.classList.add('hc-error');\n            emailInput.reportValidity();\n            setStatus('error', 'Email no v\u00e1lido');\n        }\n        return isValid;\n    };\n\n    \/\/ La validaci\u00f3n de Clearout se hace SOLO en el servidor (PHP)\n    \/\/ JavaScript solo recoge la respuesta del servidor\n\n\n    form.querySelectorAll('input, textarea, select').forEach(el => {\n        el.addEventListener('input', () => {\n            el.classList.remove('hc-error');\n            \/\/ Limpiar error del label si es checkbox\n            if (el.type === 'checkbox') {\n                const label = el.closest('label');\n                if (label) {\n                    label.classList.remove('hc-error');\n                }\n            }\n            if (el === emailInput) {\n                emailInput.setCustomValidity('');\n            }\n            if (el === phoneInput) {\n                phoneInput.setCustomValidity('');\n            }\n            \/\/ Limpiar mensaje de error cuando el usuario empieza a escribir\n            if (statusBox && statusBox.classList.contains('error')) {\n                setStatus('', '');\n            }\n        });\n        el.addEventListener('change', () => {\n            el.classList.remove('hc-error');\n            \/\/ Limpiar error del label si es checkbox\n            if (el.type === 'checkbox') {\n                const label = el.closest('label');\n                if (label) {\n                    label.classList.remove('hc-error');\n                }\n            }\n        });\n    });\n\n    const applyPrivacyLink = () => {\n        if (!privacyUrl) {\n            return;\n        }\n        const targetLink = form.querySelector('[data-privacy-link]') || form.querySelector('.hc-checkbox-group a');\n        if (targetLink) {\n            targetLink.setAttribute('href', privacyUrl);\n            targetLink.setAttribute('target', '_blank');\n            targetLink.setAttribute('rel', 'noopener');\n        }\n    };\n\n    applyPrivacyLink();\n    \n    \/\/ Si no hay program_id, configurar el listener para cuando se seleccione un programa\n    if (!programId) {\n        const programSelect = form.querySelector('select[name=\"program_id_select\"]');\n        if (programSelect) {\n            programSelect.addEventListener('change', function() {\n                const selectedProgramId = this.value;\n                if (selectedProgramId) {\n                    \/\/ Actualizar los inputs hidden inmediatamente\n                    const programIdInput = form.querySelector('input[name=\"program_id\"]');\n                    if (programIdInput) {\n                        programIdInput.value = selectedProgramId;\n                    }\n                    loadProgramData(selectedProgramId);\n                } else {\n                    \/\/ Si se deselecciona, limpiar los inputs hidden y ocultar los selects\n                    const programIdInput = form.querySelector('input[name=\"program_id\"]');\n                    const programNameInput = form.querySelector('input[name=\"program_name\"]');\n                    if (programIdInput) {\n                        programIdInput.value = '';\n                    }\n                    if (programNameInput) {\n                        programNameInput.value = '';\n                    }\n                    hideProgramSelects();\n                }\n            });\n        }\n    }\n    \n    \/\/ Funci\u00f3n para cargar los datos de un programa espec\u00edfico\n    function loadProgramData(programId) {\n        if (!endpoints.programs || !programId) {\n            return;\n        }\n        \n        \/\/ Obtener configuraci\u00f3n de visibilidad de la p\u00e1gina\n        const displayConfig = container.dataset.displayConfig ? JSON.parse(container.dataset.displayConfig) : {};\n        \n        \/\/ Obtener el grid de selects\n        let selectsGrid = container.querySelector('.hc-selects-grid');\n        \n        \/\/ Si no existe el grid, crearlo vac\u00edo (se llenar\u00e1 despu\u00e9s con skeleton y selects seg\u00fan datos)\n        if (!selectsGrid) {\n            \/\/ Buscar d\u00f3nde insertar el grid (despu\u00e9s del select de programa o antes de los checkboxes)\n            const programSelect = form.querySelector('select[name=\"program_id_select\"]') || form.querySelector('select[name=\"program_id\"]');\n            const checkboxes = form.querySelector('.hc-checkbox-group');\n            \n            \/\/ Crear el grid vac\u00edo (no crear campos hasta tener los datos del programa)\n            selectsGrid = document.createElement('div');\n            selectsGrid.className = 'hc-selects-grid';\n            selectsGrid.style.display = 'none'; \/\/ Oculto hasta que haya datos\n            \n            \/\/ Insertar el grid en el formulario\n            if (programSelect && programSelect.parentElement) {\n                programSelect.parentElement.insertAdjacentElement('afterend', selectsGrid);\n            } else if (checkboxes && checkboxes.parentElement) {\n                checkboxes.parentElement.insertBefore(selectsGrid, checkboxes);\n            } else {\n                \/\/ Fallback: insertar antes del bot\u00f3n submit\n                const submitButton = form.querySelector('button[type=\"submit\"]');\n                if (submitButton && submitButton.parentElement) {\n                    submitButton.parentElement.insertBefore(selectsGrid, submitButton);\n                }\n            }\n        }\n        \n        fetch(endpoints.programs + '?program_id=' + encodeURIComponent(programId) + '&X-WP-Nonce=' + encodeURIComponent(restNonce), {\n            method: 'GET',\n            headers: {\n                'X-WP-Nonce': restNonce\n            },\n            credentials: 'same-origin'\n        })\n        .then(resp => {\n            if (!resp.ok) {\n                return resp.json().then(errorData => {\n                    throw new Error(errorData.message || 'Error al cargar datos del programa');\n                });\n            }\n            return resp.json();\n        })\n        .then(response => {\n            if (response.success && response.data && response.data.length > 0) {\n                const program = response.data[0];\n                \n                \/\/ Actualizar los inputs hidden con el program_id y program_name\n                const programIdInput = form.querySelector('input[name=\"program_id\"]');\n                const programNameInput = form.querySelector('input[name=\"program_name\"]');\n                \n                if (programIdInput) {\n                    programIdInput.value = programId;\n                }\n                if (programNameInput) {\n                    programNameInput.value = program.nombre || '';\n                }\n                \n                \/\/ Verificar qu\u00e9 campos tienen datos Y est\u00e1n habilitados en la configuraci\u00f3n\n                \/\/ Solo mostrar skeleton y selects para campos que cumplen ambas condiciones\n                const fieldsToShow = [];\n                const fields = [\n                    { name: 'convocatoria', label: 'Convocatoria', data: program.convocatoria },\n                    { name: 'edicion', label: 'Edici\u00f3n', data: program.edicion },\n                    { name: 'modalidad', label: 'Modalidad', data: program.modalidad },\n                    { name: 'sede', label: 'Sede', data: program.sede }\n                ];\n                \n                fields.forEach(field => {\n                    \/\/ Verificar: 1) est\u00e1 habilitado en la configuraci\u00f3n, 2) tiene datos (m\u00e1s de 1 opci\u00f3n)\n                    const isEnabled = displayConfig[field.name] !== false;\n                    const hasData = field.data && field.data.length > 1;\n                    \n                    if (isEnabled && hasData) {\n                        fieldsToShow.push(field);\n                    }\n                });\n                \n                \/\/ Si hay campos para mostrar, mostrar skeleton y luego los selects\n                if (fieldsToShow.length > 0) {\n                    \/\/ Mostrar skeleton solo para los campos que se van a mostrar\n                    showSkeletonLoading(selectsGrid, fieldsToShow.map(f => f.name));\n                    \n                    \/\/ Simular un peque\u00f1o delay para que se vea el skeleton\n                    setTimeout(() => {\n                        hideSkeletonLoading(selectsGrid);\n                        \n                        \/\/ Asegurar que el grid existe y est\u00e1 visible\n                        if (!selectsGrid) {\n                            selectsGrid = container.querySelector('.hc-selects-grid');\n                        }\n                        if (selectsGrid) {\n                            selectsGrid.style.display = 'grid';\n                        }\n                        \n                        \/\/ Mostrar los selects del programa con sus opciones (solo los habilitados y con datos)\n                        showProgramSelects(program, selectsGrid, displayConfig);\n                    }, 300);\n                } else {\n                    \/\/ Si no hay campos para mostrar, ocultar el grid\n                    if (selectsGrid) {\n                        selectsGrid.style.display = 'none';\n                        selectsGrid.innerHTML = '';\n                    }\n                }\n            } else {\n                if (selectsGrid) {\n                    selectsGrid.style.display = 'none';\n                }\n                setStatus('error', 'No se encontraron datos para el programa seleccionado');\n            }\n        })\n        .catch(error => {\n            if (selectsGrid) {\n                selectsGrid.style.display = 'none';\n            }\n            setStatus('error', 'Error al cargar datos del programa: ' + error.message);\n        });\n    }\n    \n    \/\/ Funci\u00f3n para mostrar skeleton loading solo para campos espec\u00edficos que se van a mostrar\n    function showSkeletonLoading(selectsGrid, enabledFields) {\n        \/\/ Limpiar contenido previo (skeleton y selects existentes)\n        selectsGrid.innerHTML = '';\n        selectsGrid.style.display = 'grid';\n        \n        \/\/ Generar skeleton SOLO para los campos que est\u00e1n habilitados Y tienen datos\n        enabledFields.forEach(fieldName => {\n            const skeletonWrapper = document.createElement('div');\n            skeletonWrapper.className = 'hc-field hc-skeleton-field';\n            skeletonWrapper.setAttribute('data-field', fieldName + '-wrapper');\n            \n            const skeletonBar = document.createElement('div');\n            skeletonBar.className = 'hc-skeleton';\n            skeletonBar.innerHTML = '<div class=\"hc-skeleton-line\"><\/div>';\n            \n            skeletonWrapper.appendChild(skeletonBar);\n            selectsGrid.appendChild(skeletonWrapper);\n        });\n    }\n    \n    \/\/ Funci\u00f3n para ocultar skeleton loading\n    function hideSkeletonLoading(selectsGrid) {\n        if (!selectsGrid) return;\n        \/\/ Solo remover los skeleton, NO limpiar todo el innerHTML\n        \/\/ porque los selects se crear\u00e1n despu\u00e9s\n        const skeletonFields = selectsGrid.querySelectorAll('.hc-skeleton-field');\n        skeletonFields.forEach(field => field.remove());\n    }\n    \n    \/\/ Funci\u00f3n para mostrar los selects del programa\n    \/\/ Solo crea\/actualiza selects para campos habilitados Y con datos disponibles\n    function showProgramSelects(program, selectsGridParam, displayConfig) {\n        \/\/ Asegurar que tenemos referencia al grid\n        let selectsGrid = selectsGridParam || container.querySelector('.hc-selects-grid');\n        \n        if (!selectsGrid) {\n            return;\n        }\n        \n        \/\/ Funci\u00f3n auxiliar para crear\/actualizar un select\n        const createOrUpdateSelect = (name, label, values) => {\n            \/\/ Verificar que est\u00e1 habilitado en la configuraci\u00f3n\n            if (displayConfig && displayConfig[name] === false) {\n                return false; \/\/ Campo deshabilitado, no crear\n            }\n            \n            \/\/ Verificar que hay datos\n            if (!values || values.length <= 1) {\n                return false; \/\/ No hay datos suficientes\n            }\n            \n            \/\/ Buscar si ya existe un wrapper (puede venir del skeleton o de creaci\u00f3n previa)\n            let selectWrapper = selectsGrid.querySelector('[data-field=\"' + name + '-wrapper\"]');\n            \n            if (!selectWrapper) {\n                \/\/ Crear el wrapper si no existe\n                selectWrapper = document.createElement('div');\n                selectWrapper.className = 'hc-field';\n                selectWrapper.setAttribute('data-field', name + '-wrapper');\n                selectsGrid.appendChild(selectWrapper);\n            }\n            \n            \/\/ Buscar o crear el select\n            let select = selectWrapper.querySelector('select[name=\"' + name + '\"]');\n            \n            if (!select) {\n                \/\/ Crear el select si no existe\n                select = document.createElement('select');\n                select.name = name;\n                select.className = 'hc-select';\n                select.required = true;\n                selectWrapper.appendChild(select);\n            }\n            \n            \/\/ Actualizar las opciones\n            select.innerHTML = '<option value=\"\">' + label + '<\/option>';\n            values.forEach(value => {\n                const option = document.createElement('option');\n                option.value = value;\n                option.textContent = value;\n                select.appendChild(option);\n            });\n            \n            \/\/ Asegurar que el wrapper est\u00e1 visible\n            selectWrapper.style.display = 'block';\n            return true;\n        };\n        \n        \/\/ Crear\/actualizar solo los selects que est\u00e1n habilitados Y tienen datos\n        let hasVisibleSelects = false;\n        \n        if (program.convocatoria && program.convocatoria.length > 1) {\n            if (createOrUpdateSelect('convocatoria', 'Convocatoria', program.convocatoria)) {\n                hasVisibleSelects = true;\n            }\n        }\n        \n        if (program.edicion && program.edicion.length > 1) {\n            if (createOrUpdateSelect('edicion', 'Edici\u00f3n', program.edicion)) {\n                hasVisibleSelects = true;\n            }\n        }\n        \n        if (program.modalidad && program.modalidad.length > 1) {\n            if (createOrUpdateSelect('modalidad', 'Modalidad', program.modalidad)) {\n                hasVisibleSelects = true;\n            }\n        }\n        \n        if (program.sede && program.sede.length > 1) {\n            if (createOrUpdateSelect('sede', 'Sede', program.sede)) {\n                hasVisibleSelects = true;\n            }\n        }\n        \n        \/\/ Mostrar\/ocultar el grid seg\u00fan si hay selects visibles\n        if (selectsGrid) {\n            if (hasVisibleSelects) {\n                selectsGrid.style.display = 'grid';\n            } else {\n                selectsGrid.style.display = 'none';\n            }\n        }\n    }\n    \n    \/\/ Funci\u00f3n para ocultar los selects del programa\n    function hideProgramSelects() {\n        const selectsGrid = container.querySelector('.hc-selects-grid');\n        if (selectsGrid) {\n            selectsGrid.style.display = 'none';\n            selectsGrid.innerHTML = '';\n        }\n        \n        const programNameInput = form.querySelector('input[name=\"program_name\"]');\n        if (programNameInput) {\n            programNameInput.value = '';\n        }\n    }\n\n    form.addEventListener('submit', async function(event) {\n\n        \/\/ Bloquear el bot\u00f3n durante 2 segundos para prevenir env\u00edos duplicados\n        const submitButton = form.querySelector('.hc-submit');\n        if (submitButton) {\n            \/\/ Guardar el texto original\n            const originalText = submitButton.textContent || submitButton.innerText;\n            \n            \/\/ Cambiar a indicador de carga con spinner peque\u00f1o\n            submitButton.innerHTML = '<span style=\"display: inline-block; width: 16px; height: 16px; border: 2px solid rgba(255,255,255,0.3); border-top-color: #fff; border-radius: 50%; animation: hc-spin 0.8s linear infinite; margin-right: 8px; vertical-align: middle;\"><\/span>';\n            submitButton.disabled = true;\n            submitButton.style.cursor = 'not-allowed';\n            submitButton.style.opacity = '0.6';\n            \n            setTimeout(() => {\n                \/\/ Restaurar el texto original\n                submitButton.textContent = originalText;\n                submitButton.disabled = false;\n                submitButton.style.cursor = 'pointer';\n                submitButton.style.opacity = '1';\n            }, 2000);\n        }\n\n        \/\/ PREVENIR ENV\u00cdO TRADICIONAL - SIEMPRE PRIMERO\n        event.preventDefault();\n        event.stopPropagation();\n        \n        \/\/ Limpiar mensajes anteriores\n        setStatus('', '');\n        setSuccessMessage('');\n        \n        \/\/ Validaciones b\u00e1sicas ANTES de mostrar spinner\n        let hasErrors = false;\n        \n        \/\/ Validar campos obligatorios (marca en rojo autom\u00e1ticamente y muestra mensaje)\n        if (!validateForm()) {\n            hasErrors = true;\n        }\n        \n        \/\/ Validar formato de email (marca en rojo autom\u00e1ticamente y muestra mensaje)\n        if (!validateEmailFormat()) {\n            hasErrors = true;\n        }\n        \n        \/\/ Si hay errores, no continuar (los campos ya est\u00e1n marcados en rojo y el mensaje mostrado)\n        if (hasErrors) {\n            return;\n        }\n\n        \n        \/\/ Si todo est\u00e1 bien, mostrar spinner y continuar\n        setLoading(true);\n        \n        \/\/ Obtener token de reCAPTCHA v3 si est\u00e1 configurado\n        let recaptchaToken = '';\n        if (recaptchaSiteKey && window.grecaptcha) {\n            try {\n                recaptchaToken = await window.grecaptcha.execute(recaptchaSiteKey, { action: 'submit_lead' });\n            } catch (error) {\n                console.error('[reCAPTCHA] Error obteniendo token:', error);\n                \/\/ Si falla reCAPTCHA, continuar de todos modos (fallback)\n            }\n        }\n\n        const formData = new FormData(form);\n        \n        \/\/ Procesar tel\u00e9fono: concatenar prefijo si el selector est\u00e1 visible\n        let phoneRawInput = formData.get('phone') || '';\n        let phoneCountryCode = '';\n        const phonePrefixSelect = form.querySelector('select[name=\"phone_prefix\"]');\n        \n        \/\/ Solo procesar si el selector est\u00e1 visible (display !== 'none')\n        if (phonePrefixSelect && window.getComputedStyle(phonePrefixSelect).display !== 'none') {\n            const selectedPrefix = phonePrefixSelect.value || '+34';\n            const selectedOption = phonePrefixSelect.options[phonePrefixSelect.selectedIndex];\n            phoneCountryCode = selectedOption.getAttribute('data-country') || '';\n            \n            \/\/ Concatenar prefijo solo si el n\u00famero NO empieza con +\n            if (phoneRawInput && !phoneRawInput.trim().startsWith('+')) {\n                phoneRawInput = selectedPrefix + phoneRawInput.trim();\n            }\n        }\n        \n        const phoneRaw = sanitizePhone(phoneRawInput);\n        \n        const privacyAccepted = formData.get('privacy') ? '1' : '0';\n        const leadSource = formData.get('lead_source') || 'P\u00e1gina Web';\n        const tipoOrigen = formData.get('tipo_origen') || 'Digital';\n        const regionValue = formData.get('region') || '';\n        const phoneSecondary = sanitizePhone(formData.get('phone_secondary') || '');\n\n        \/\/ Obtener program_id del select si no est\u00e1 en el contexto inicial\n        const selectedProgramId = formData.get('program_id') || programId || '';\n        const selectedProgramName = formData.get('program_name') || '';\n        \n        \/\/ Si no hay program_id, usar siempre la regi\u00f3n global de la configuraci\u00f3n\n        \/\/ Si hay program_id, usar la regi\u00f3n inferida del pa\u00eds o la global como fallback\n        let finalRegion = defaultRegion || 'Iberia';\n        if (selectedProgramId && regionValue) {\n            finalRegion = regionValue;\n        } else if (!selectedProgramId) {\n            \/\/ Sin program_id: siempre usar regi\u00f3n global\n            finalRegion = defaultRegion || 'Iberia';\n        }\n        \n        \/\/ Obtener datos de Form Guard (si est\u00e1n disponibles)\n        const clearoutPhoneStatus = formData.get('clearout_phone_status') || '';\n        const clearoutPhoneCountryCode = formData.get('clearout_phone_country_code') || '';\n        const clearoutPhoneE164 = formData.get('clearout_phone_e164') || '';\n        \n        \/\/ Usar el tel\u00e9fono validado (E164) si est\u00e1 disponible, sino usar el tel\u00e9fono raw\n        const phoneToSend = clearoutPhoneE164 || phoneRaw;\n        \n        \/\/ Obtener GCLID de Google Ads (capturado por el script de Zoho)\n        const zcGadInput = form.querySelector('#zc_gad');\n        let zcGad = '';\n        if (zcGadInput) {\n            const rawValue = zcGadInput.value || '';\n            \/\/ Filtrar valores inv\u00e1lidos: undefined, null, 'undefined', 'null', strings vac\u00edos\n            if (rawValue && rawValue !== 'undefined' && rawValue !== 'null' && rawValue.trim() !== '') {\n                zcGad = rawValue.trim();\n            }\n        }\n        \n        const payload = {\n            program_id: selectedProgramId,\n            program_name: selectedProgramName,\n            first_name: formData.get('first_name') || '',\n            last_name: formData.get('last_name') || '',\n            email: formData.get('email') || '',\n            phone: phoneToSend,\n            \/\/ Datos de Form Guard para tel\u00e9fono\n            clearout_phone_status: clearoutPhoneStatus,\n            clearout_phone_country_code: clearoutPhoneCountryCode,\n            clearout_phone_e164: clearoutPhoneE164,\n            phone_secondary: phoneSecondary,\n            \/\/ Pa\u00eds del selector de prefijos (para clearoutphone.io)\n            phone_prefix_country: phoneCountryCode,\n            \/\/ Token de reCAPTCHA v3\n            recaptcha_token: recaptchaToken,\n            country: formData.get('country') || '',\n            region: finalRegion,\n            convocatoria: formData.get('convocatoria') || '',\n            sede: formData.get('sede') || '',\n            modalidad: formData.get('modalidad') || '',\n            edicion: formData.get('edicion') || '',\n            comments: formData.get('comments') || '',\n            marketing: formData.get('marketing') ? '1' : '0',\n            privacy: privacyAccepted,\n            lead_source: leadSource,\n            tipo_origen: tipoOrigen,\n            traffic_source: formData.get('traffic_source') || '',\n            \/\/ GCLID de Google Ads (capturado por script de Zoho)\n            zc_gad: zcGad,\n            utm: {\n                campaign: formData.get('utm_campaign') || '',\n                source: formData.get('utm_source') || '',\n                medium: formData.get('utm_medium') || '',\n                term: formData.get('utm_term') || '',\n                content: formData.get('utm_content') || ''\n            }\n        };\n\n        fetch(endpoints.leads, {\n            method: 'POST',\n            headers: {\n                'Content-Type': 'application\/json',\n                'X-WP-Nonce': restNonce\n            },\n            credentials: 'same-origin',\n            body: JSON.stringify(payload)\n        })\n        .then(resp => {\n            console.log('[Form] Response status:', resp.status, 'OK:', resp.ok);\n            \n            \/\/ Verificar si la respuesta es un error HTTP\n            if (!resp.ok) {\n                return resp.json().then(errorData => {\n                    console.log('[Form] Error HTTP response:', errorData);\n                    \/\/ WordPress REST API devuelve errores con 'code' y 'message'\n                    const errorCode = errorData.code || '';\n                    const errorMessage = errorData.message || errorCode || 'Error en el servidor';\n                    \/\/ Crear un objeto de error con el c\u00f3digo para poder identificarlo despu\u00e9s\n                    const error = new Error(errorMessage);\n                    error.code = errorCode;\n                    error.errorData = errorData;\n                    throw error;\n                });\n            }\n            return resp.json();\n        })\n        .then(response => {\n            \/\/ Verificar si la respuesta indica \u00e9xito\n            if (!response.success) {\n                \/\/ WordPress REST API puede devolver errores en el formato {code, message, data}\n                const errorCode = response.code || '';\n                const errorMessage = response.message || errorCode || 'No se pudo completar el env\u00edo.';\n                const error = new Error(errorMessage);\n                error.code = errorCode;\n                error.errorData = response;\n                throw error;\n            }\n            \/\/ \u00c9xito: guardar email antes del reset (para Conversiones Mejoradas \/ GTM)\n            const leadEmail = (payload.email || '').trim();\n            if (leadEmail) {\n                try {\n                    sessionStorage.setItem('hc_user_email', leadEmail);\n                    sessionStorage.setItem('hc_generate_lead', '1');\n                } catch (e) {}\n            }\n\n            form.reset();\n\n            \/\/ Si hay URL de redirect, redirigir (el dataLayer se lanza en la p\u00e1gina de gracias)\n            if (redirectUrl && redirectUrl !== '') {\n                window.location.href = redirectUrl;\n            } else {\n                \/\/ Sin redirect: push inmediato en la misma p\u00e1gina\n                if (leadEmail) {\n                    window.dataLayer = window.dataLayer || [];\n                    window.dataLayer.push({\n                        event: 'generate_lead',\n                        user_email: leadEmail\n                    });\n                    try {\n                        sessionStorage.removeItem('hc_user_email');\n                        sessionStorage.removeItem('hc_generate_lead');\n                    } catch (e) {}\n                }\n                \/\/ Mostrar mensaje de \u00e9xito fuera del formulario\n                setSuccessMessage(successMessage);\n                \/\/ Ocultar el formulario, el header y el spinner\n                const formHeader = container.querySelector('.hc-form-header');\n                if (formHeader) {\n                    formHeader.style.display = 'none';\n                }\n                if (form) {\n                    form.style.display = 'none';\n                }\n                const spinner = container.querySelector('.hc-form-spinner');\n                if (spinner) {\n                    spinner.style.display = 'none';\n                }\n            }\n        })\n        .catch((error) => {\n            \/\/ Manejar errores del backend\n            const errorCode = error.code || '';\n            \n            \/\/ Debug: log del error\n            console.log('[Form] Error capturado:', errorCode, error.message);\n            \n            \/\/ Error de email inv\u00e1lido (Clearout)\n            if (errorCode === 'hc_clearout_email_invalid' && emailInput) {\n                emailInput.classList.add('hc-error');\n                emailInput.setCustomValidity('Email no v\u00e1lido');\n                \/\/emailInput.reportValidity();\n                setStatus('error', error.message || 'Email no v\u00e1lido');\n                setLoading(false);\n                return;\n            }\n            \n            \/\/ Error de tel\u00e9fono inv\u00e1lido (m\u00faltiples c\u00f3digos de error)\n            const phoneErrorCodes = ['hc_clearout_phone_invalid', 'hc_lead_invalid_phone'];\n            if (phoneErrorCodes.includes(errorCode) && phoneInput) {\n                console.log('[Form] Pintando campo tel\u00e9fono de rojo');\n                phoneInput.classList.add('hc-error');\n                phoneInput.setCustomValidity(error.message || 'Tel\u00e9fono no v\u00e1lido');\n                \n                \/\/ Tambi\u00e9n marcar el selector de prefijos si existe y est\u00e1 visible\n                const phonePrefixSelect = form.querySelector('select[name=\"phone_prefix\"]');\n                if (phonePrefixSelect) {\n                    const isVisible = window.getComputedStyle(phonePrefixSelect).display !== 'none';\n                    console.log('[Form] Selector de prefijos visible:', isVisible);\n                    if (isVisible) {\n                        phonePrefixSelect.classList.add('hc-error');\n                        console.log('[Form] Selector de prefijos pintado de rojo');\n                    }\n                }\n                \n                phoneInput.reportValidity();\n                setStatus('error', error.message || 'Tel\u00e9fono no v\u00e1lido');\n                setLoading(false);\n                return;\n            }\n            \n            \/\/ Otros errores: mostrar mensaje gen\u00e9rico\n            setStatus('error', '');\n            setLoading(false);\n        })\n        .finally(() => {\n            setLoading(false);\n        });\n    });\n\n    hydrateUTMs();\n    return true;\n    } \/\/ Fin de initForm\n    \n    \/\/ Intentar ejecutar inmediatamente\n    let initialized = initForm();\n    \n    \/\/ Si no se inicializ\u00f3, intentar cuando el DOM est\u00e9 listo\n    if (!initialized) {\n        if (document.readyState === 'loading') {\n            document.addEventListener('DOMContentLoaded', initForm);\n        } else {\n            \/\/ Si el DOM ya est\u00e1 listo pero no se encontr\u00f3, intentar de nuevo despu\u00e9s de un breve delay\n            setTimeout(function() {\n                const testContainer = document.getElementById('hc_form_1_6114');\n                if (testContainer) {\n                    initForm();\n                }\n            }, 100);\n        }\n    }\n})();\n<\/script>\n\n<h2>Una comunidad que forma, inspira y acompa\u00f1a<\/h2>\n<p>\t\thttps:\/\/www.youtube.com\/watch?v=K73JirKHkNk\t\t\t<\/p>\n<h2><a href=\"https:\/\/www.youtube.com\/watch?v=K73JirKHkNk\" target=\"_blank\" rel=\"noopener\">M\u00e9dicos formando m\u00e9dicos<\/a><\/h2>\n<p>\t\thttps:\/\/www.youtube.com\/watch?v=zfAH6k_op-Y\t\t\t<\/p>\n<h2><a href=\"https:\/\/www.youtube.com\/watch?v=zfAH6k_op-Y\" target=\"_blank\" rel=\"noopener\">Historias de \u00e9xito<\/a><\/h2>\n<h2>Programas destacados<\/h2>\n<article ><a href=\"https:\/\/qa.amirlatam.com\/colombia\/producto\/curso-mir-2027\/\"><img decoding=\"async\" style=\"background-image: url(https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/mask_group1.webp)\" src=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/plugins\/better-post-filter-widgets-for-elementor\/assets\/images\/BPFWE-Placeholder-Image-4-3.png\" data-bpfwe-src=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/mask_group1.webp\" alt=\"Post Image Placeholder\" \/><\/a><\/p>\n<h3><a href=\"https:\/\/qa.amirlatam.com\/colombia\/producto\/curso-mir-2027\/\">CURSO MIR 2027<\/a><\/h3>\n<p>Curso residencia m\u00e9dica en Espa\u00f1a con expertos y una App que optimiza tu estudio con IA.<\/p>\n<ul>\n<li>ONLINE<\/li>\n<li>PRESENCIAL<\/li>\n<li>H\u00cdBRIDO<\/li>\n<\/ul>\n<\/article>\n<article ><a href=\"https:\/\/qa.amirlatam.com\/colombia\/producto\/master-en-medicina-estetica\/\"><img decoding=\"async\" style=\"background-image: url(https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/mask_group-1-1.webp)\" src=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/plugins\/better-post-filter-widgets-for-elementor\/assets\/images\/BPFWE-Placeholder-Image-4-3.png\" data-bpfwe-src=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/mask_group-1-1.webp\" alt=\"Post Image Placeholder\" \/><\/a><\/p>\n<h3><a href=\"https:\/\/qa.amirlatam.com\/colombia\/producto\/master-en-medicina-estetica\/\">M\u00e1ster en Medicina Est\u00e9tica, Nutrici\u00f3n y Antienvejecimiento<\/a><\/h3>\n<p>T\u00e9cnicas, tendencias y oportunidades en el sector est\u00e9tico.<\/p>\n<ul>\n<li>Semipresencial<\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/modo_de_aislamiento.webp\" \/><br \/>\n<img decoding=\"async\" src=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/logocorpas_nuevo_1.webp\" \/><\/article>\n<article ><a href=\"https:\/\/qa.amirlatam.com\/colombia\/producto\/master-en-tricologia\/\"><img decoding=\"async\" style=\"background-image: url(https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/mask_group-2.webp)\" src=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/plugins\/better-post-filter-widgets-for-elementor\/assets\/images\/BPFWE-Placeholder-Image-4-3.png\" data-bpfwe-src=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/mask_group-2.webp\" alt=\"Post Image Placeholder\" \/><\/a><\/p>\n<h3><a href=\"https:\/\/qa.amirlatam.com\/colombia\/producto\/master-en-tricologia\/\">M\u00e1ster en Tricolog\u00eda y Microinjerto Capilar<\/a><\/h3>\n<p>Demanda creciente, innovaci\u00f3n m\u00e9dica y una pr\u00e1ctica de alta rentabilidad.<\/p>\n<ul>\n<li>SEMIPRESENCIAL<\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/modo_de_aislamiento.webp\" \/><\/article>\n<style>\n#car-productos-fichas .swiper-pagination-bullet{\n    border:1px solid #B8BE14;\n    opacity: 1;\n    background: #FFFFFF;\n}\n#car-productos-fichas .swiper-pagination-bullet-active {\n    background-color: #B8BE14;\n}\n#car-productos-fichas .swiper-pagination{\n    top: 10px;\n}\n#car-productos-fichas .post-read-more{\n    display: grid;\n    align-items: center;\n    grid-column-gap: 5px;\n}\n#car-productos-fichas .post-read-more svg{\n    grid-column: 2 \/ 3;\n    grid-row: 1 \/ 2;\n}\n#car-productos-fichas .post-read-more:hover svg{\n    fill:#08467F;\n    color: #08467F;\n}\n#car-productos-fichas .elementor-repeater-item-4587b34{\n    color: #585858;\n    font-family: \"Open Sans\", sans-serif;\n    font-size: 12px;\n    font-style: normal;\n    font-weight: 400;\n    line-height: 1.2em;\n}\n#car-productos-fichas .elementor-repeater-item-ba4214d ul{\n    list-style: none;\n    padding: 0;\n    margin: 0;\n    display: flex;\n    row-gap: 10px;\n}\n#car-productos-fichas .elementor-repeater-item-ba4214d li{\n    color: #B8BE14;\n    font-family: \"Open Sans\", sans-serif;\n    font-size: 13px;\n    font-style: normal;\n    font-weight: 600;\n    line-height: 1.2em;\n    text-transform: uppercase;\n    border-right: 1px solid #B8BE14;\n    padding-inline: 6px;\n    margin-bottom: 0;\n}\n#car-productos-fichas .elementor-repeater-item-ba4214d li:first-child{\n    padding-left: 0;\n}\n#car-productos-fichas .elementor-repeater-item-ba4214d li:last-child{\n    border-right:0;\n    padding-right: 0;\n}\n#car-productos-fichas .elementor-repeater-item-46f18ce{\n    display: flex;\n    flex-wrap: wrap;\n    width: 100%;\n    gap: 10px;\n}\n#car-productos-fichas .elementor-repeater-item-46f18ce img{\n    max-width: 100px;\n    position: relative;\n}\n#car-productos-fichas .post-image::before {\n    content: '';\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n    border-radius: 25px;\n    background-color: #B8BE14;\n    opacity: 0;\n    font-family: \"Open Sans\", sans-serif;\n    transition: opacity 0.3s ease;\n    z-index: 1;\n    pointer-events: none;\n}\n#car-productos-fichas .post-image::after {\n    content: 'Conocer m\u00e1s';\n    text-transform: uppercase;\n    letter-spacing: 2.3px;\n    position: absolute;\n    top: 50%;\n    font-family: \"Open Sans\", sans-serif;\n    left: 50%;\n    border-radius: 25px;\n    transform: translate(-50%, -50%);\n    color: #FFFFFF;\n    font-size: 17px;\n    font-weight: bold;\n    opacity: 0;\n    transition: opacity 0.3s ease;\n    z-index: 2;\n    pointer-events: none;\n}\n#car-productos-fichas .post-image:hover::before {\n    opacity: 0.5;\n}\n#car-productos-fichas .post-image:hover::after {\n    opacity: 1;\n}\n#car-productos-fichas .post-custom-field{\n    margin-top: 15px;\n}\n@media(max-width:1480px){\n    #car-productos-fichas .elementor-repeater-item-46f18ce img{\n        max-width: 90px;\n    }\n}\n@media(max-width:1280px){\n    #car-productos-fichas .elementor-repeater-item-46f18ce img{\n        max-width: 80px;\n    }\n}\n@media(max-width:980px){\n    #car-productos-fichas .elementor-repeater-item-46f18ce img{\n        max-width: 70px;\n    }\n}\n@media(max-width:767px){\n    #car-productos-fichas .elementor-repeater-item-46f18ce img{\n        max-width: 60px;\n    }\n}\n<\/style>\n<h2>ALIADOS<\/h2>\n<figure><img decoding=\"async\" src=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/logo-Corpas.svg\" alt=\"logo-Corpas\" \/><\/figure>\n<figure><img decoding=\"async\" src=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/Aliado-2_UDIMA.svg\" alt=\"Aliado 2_UDIMA\" \/><\/figure>\n<figure><img decoding=\"async\" src=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/Aliado-17_SOCOMEG.svg\" alt=\"Aliado 17_SOCOMEG\" \/><\/figure>\n<figure><img decoding=\"async\" src=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/Aliado-23_Universidad-Pontificia-Bolivariana.svg\" alt=\"Aliado 23_Universidad Pontificia Bolivariana\" \/><\/figure>\n<figure><img decoding=\"async\" src=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/Aliado-13_Universidad-de-la-salud.svg\" alt=\"Aliado 13_Universidad de la salud\" \/><\/figure>\n<figure><img decoding=\"async\" src=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/Aliado-14_Sociedad-Mexicana-de-Estudiantes-en-Cardiologia-A.C.svg\" alt=\"Aliado 14_Sociedad Mexicana de Estudiantes en Cardiolog\u00eda A.C\" \/><\/figure>\n<figure><img decoding=\"async\" src=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/Aliado-15_Colegio-Mexicano-de-Medicos-Generales.svg\" alt=\"Aliado 15_Colegio Mexicano de M\u00e9dicos Generales\" \/><\/figure>\n<figure><img decoding=\"async\" src=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/Aliado-16_Puce.svg\" alt=\"Aliado 16_Puce\" \/><\/figure>\n<figure><img decoding=\"async\" src=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/Aliado-18_Universidad-Catolica-Santa-Maria.svg\" alt=\"Aliado 18_Universidad C\u00e1tolica Santa Mar\u00eda\" \/><\/figure>\n<figure><img decoding=\"async\" src=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/Aliado-19_PAD.svg\" alt=\"Aliado 19_PAD\" \/><\/figure>\n<figure><img decoding=\"async\" src=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/Aliado-20_Universidad-Norbert-Weiner.svg\" alt=\"Aliado 20_Universidad Norbert Weiner\" \/><\/figure>\n<figure><img decoding=\"async\" src=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/Aliado-21_Universidad-de-los-Andes.svg\" alt=\"Aliado 21_Universidad de los Andes\" \/><\/figure>\n<figure><img decoding=\"async\" src=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/Aliado-22_Universidad-Cooperativa-de-Colombia.svg\" alt=\"Aliado 22_Universidad Cooperativa de Colombia\" \/><\/figure>\n<figure><img decoding=\"async\" src=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/Aliado-24_Universidad-del-Rosario.svg\" alt=\"Aliado 24_Universidad del Rosario\" \/><\/figure>\n<figure><img decoding=\"async\" src=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/Aliado-25_Universidad-San-Judas-Tadeo.svg\" alt=\"Aliado 25_Universidad San Judas Tadeo\" \/><\/figure>\n<figure><img decoding=\"async\" src=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/Aliado-26_DIANCECHT.svg\" alt=\"Aliado 26_DIANCECHT\" \/><\/figure>\n<figure><img decoding=\"async\" src=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/Aliado-27_UMET.svg\" alt=\"Aliado 27_UMET\" \/><\/figure>\n<figure><img decoding=\"async\" src=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/colegio-medico-colombiano-epicrisis-rethus-tarjeta-profesional-gremial-medicina-medicos-salud-logo-9-1.svg\" alt=\"colegio-medico-colombiano-epicrisis-rethus-tarjeta-profesional-gremial-medicina-medicos-salud-logo-9 1\" \/><\/figure>\n<figure><img decoding=\"async\" src=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/fundacion-universitaria-sanitas_1679506368.svg\" alt=\"fundacion-universitaria-sanitas_1679506368\" \/><\/figure>\n<figure><img decoding=\"async\" src=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/U.militar-LOGO.svg\" alt=\"U.militar LOGO\" \/><\/figure>\n<figure><img decoding=\"async\" src=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/Aliado-1_Facultad-de-CENSUPEG.svg\" alt=\"Aliado 1_Facultad de CENSUPEG\" \/><\/figure>\n<figure><img decoding=\"async\" src=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/Aliado-3_Hospital-Metropolitano.svg\" alt=\"Aliado 3_Hospital Metropolitano\" \/><\/figure>\n<figure><img decoding=\"async\" src=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/Aliado-4_GG-Medical-Solutions.svg\" alt=\"Aliado 4_GG Medical Solutions\" \/><\/figure>\n<figure><img decoding=\"async\" src=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/Aliado-6_Clinica-THUEL.svg\" alt=\"Aliado 6_Cl\u00ednica THUEL\" \/><\/figure>\n<figure><img decoding=\"async\" src=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/Aliado-7_Fagil.svg\" alt=\"Aliado 7_Fagil\" \/><\/figure>\n<figure><img decoding=\"async\" src=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/Aliado-8_Procomer-Costa-Rica.svg\" alt=\"Aliado 8_Procomer Costa Rica\" \/><\/figure>\n<figure><img decoding=\"async\" src=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/Aliado-9_Relief.svg\" alt=\"Aliado 9_Relief\" \/><\/figure>\n<figure><img decoding=\"async\" src=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/Aliado-10_Fifty-Doctors-Hospital.svg\" alt=\"Aliado 10_Fifty Doctors Hospital\" \/><\/figure>\n<figure><img decoding=\"async\" src=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/Aliado-11_Laleo.svg\" alt=\"Aliado 11_Laleo\" \/><\/figure>\n<figure><img decoding=\"async\" src=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/Aliado-12_IMESEX.svg\" alt=\"Aliado 12_IMESEX\" \/><\/figure>\n<p>\t\t\t\t\t\t<svg aria-hidden=\"true\" viewBox=\"0 0 1000 1000\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M646 125C629 125 613 133 604 142L308 442C296 454 292 471 292 487 292 504 296 521 308 533L604 854C617 867 629 875 646 875 663 875 679 871 692 858 704 846 713 829 713 812 713 796 708 779 692 767L438 487 692 225C700 217 708 204 708 187 708 171 704 154 692 142 675 129 663 125 646 125Z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t<svg aria-hidden=\"true\" viewBox=\"0 0 1000 1000\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M696 533C708 521 713 504 713 487 713 471 708 454 696 446L400 146C388 133 375 125 354 125 338 125 325 129 313 142 300 154 292 171 292 187 292 204 296 221 308 233L563 492 304 771C292 783 288 800 288 817 288 833 296 850 308 863 321 871 338 875 354 875 371 875 388 867 400 854L696 533Z\"><\/path><\/svg>\t\t\t\t\t<\/p>\n<h2>Metodolog\u00eda<\/h2>\n<p>Nuestro m\u00e9todo contrastado combina teor\u00eda, pr\u00e1ctica y tecnolog\u00eda en una experiencia formativa \u00fanica, con un enfoque \u00e9tico, humano y sustentado en la evidencia cient\u00edfica.<\/p>\n<p>Con una planificaci\u00f3n precisa, docentes que hacen f\u00e1cil lo dif\u00edcil y entrenamiento real, garantizamos que cada estudiante desarrolle la seguridad, el criterio y la excelencia cl\u00ednica que distinguen a un profesional AMIR.<\/p>\n<p>\t\t\t\t\t\t\t\t<a href=\"#\"><br \/>\n\t\t\t\t\t\t\t\t\tCON\u00d3CE m\u00c1S<br \/>\n\t\t\t\t\t<\/a><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1973\" height=\"1191\" src=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/group_40148.webp\" alt=\"\" srcset=\"https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/group_40148.webp 1973w, https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/group_40148-300x181.webp 300w, https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/group_40148-600x362.webp 600w, https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/group_40148-1024x618.webp 1024w, https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/group_40148-768x464.webp 768w, https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/group_40148-1536x927.webp 1536w, https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/group_40148-1200x724.webp 1200w, https:\/\/qa.amirlatam.com\/colombia\/wp-content\/uploads\/2025\/11\/group_40148-1400x845.webp 1400w\" sizes=\"auto, (max-width: 1973px) 100vw, 1973px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"#\"><br \/>\n\t\t\t\t\t\t\t\t\tCON\u00d3CE m\u00c1S<br \/>\n\t\t\t\t\t<\/a><\/p>\n<style>\n#logo img{\n    width: auto !important;\n}\n.btn-drop .e-n-accordion-item{\n        background-color: rgb(255, 255, 255,0.85);\n    border: 1.5px solid rgb(8, 70, 127);\n    border-radius: 30px;\n    padding: 4.7% 7%;\n        position: absolute;\n}\n.btn-drop .e-n-accordion-item[open]{\n        background-color: rgb(255, 255, 255,1);\n}\n.btn-drop .e-n-accordion-item-title{\n    padding: 0;\n    border: 0;\n    line-height: 1.1em;\n}\n.btn-drop .e-n-accordion-item>div{\n    padding: 0;\n    padding-top: 20px;\n    row-gap: 20px;\n}\n.cifras .elementor-counter-title{\n    text-align: center;\n}\n.seccion-form{\n    filter: drop-shadow(0 0 5px rgba(0, 0, 0, 0.25));\n    margin-left: -1px;\n    margin-right: -1px;\n    width: calc(100% + 2px);\n}\n.carrusel .swiper-pagination-bullet{\n    border:1px solid #B8BE14;\n}\n.form-gral input:focus,\n.form-gral select:focus{\n    border-color:#B8BE14 !important;\n    box-shadow: none !important;\n}\n.form-gral select{\n    background-image:none;\n}\n.form-gral .select-caret-down-wrapper>svg{\n        color: #B8BE14;\n}\n.link-med a{\n    position: relative;\n}\n.link-med a:after {\n    content: \"\";\n    position: absolute;\n    width: 100%;\n    height: 2px;\n    background-color: #E76000;\n    left: 0;\n    bottom: -3px;\n    opacity: 0;\n}\n.link-med a:hover:after {\n    background-color:#B8BE14;\n    opacity: 1;\n}\n.content-video:hover{\n    width: 104%;\n    z-index: 9;\n    transition: 0.5s ease;\n}\n.content-video:hover{\n    margin-right: -2%;\n    margin-left:-2%;\n}\n@media(max-width:980px){\n    .btn-drop .e-n-accordion-item{\n        padding: 15px 25px;\n        position: relative;\n    }\n}\n@media(max-width:767px){\n    #img-banner{\n        width: calc(100% + 50px);\n        margin-left: -25px;\n        margin-right: -25px;\n        max-width: none;\n    }\n    #logo {\n        width: 50% !important;\n        margin-inline: auto !important\n    }\n    .link-med a:after {\n        display: none;\n    }\n    .link-med{\n        border: 0 !important;\n        border-radius: 0 !important;\n        padding: px !important;\n    }\n    .link-med a{\n        border: 1px solid #B8BE14 !important;\n        padding: 5px 15px !important;\n        border-radius: 20px;\n    }\n    .link-med a:hover{\n       background-color: #B8BE14 !important;\n       color: #FFFFFF !important;\n    }\n    #banner-principal{\n        background-image: none;\n    }\n    .content-video:hover{\n        width: 100%;\n    }\n    .content-video:hover{\n        margin-right: 0%;\n        margin-left:0%;\n    }\n}\n@media(max-width:480px){\n    #logo {\n        width: 40% !important;\n    }\n}\n<\/style>\n","protected":false},"excerpt":{"rendered":"<p>Te acompa\u00f1amos en cada etapa de tU camino profesional CURSOS RESIDENCIAS M\u00c9DICAS Curso MIR 2027 Diplomado Residencia M\u00e9dica Curso MIR 2027 Diplomado Residencia M\u00e9dica M\u00e1sters Y POSGRADOS Medicina Est\u00e9tica Tricolog\u00eda Sexolog\u00eda y Terapia de Pareja Medicina Est\u00e9tica Tricolog\u00eda Sexolog\u00eda y Terapia de Pareja DIPLOMADOS INTERNACIONALES Pediatr\u00eda Hospitalaria Anestesiolog\u00eda &amp; Reanimaci\u00f3n Cardiolog\u00eda Enfermedades Infecciosas Ginecolog\u00eda y [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":14400,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"class_list":["post-84","page","type-page","status-publish","has-post-thumbnail","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/qa.amirlatam.com\/colombia\/wp-json\/wp\/v2\/pages\/84","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/qa.amirlatam.com\/colombia\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/qa.amirlatam.com\/colombia\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/qa.amirlatam.com\/colombia\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/qa.amirlatam.com\/colombia\/wp-json\/wp\/v2\/comments?post=84"}],"version-history":[{"count":873,"href":"https:\/\/qa.amirlatam.com\/colombia\/wp-json\/wp\/v2\/pages\/84\/revisions"}],"predecessor-version":[{"id":13965,"href":"https:\/\/qa.amirlatam.com\/colombia\/wp-json\/wp\/v2\/pages\/84\/revisions\/13965"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/qa.amirlatam.com\/colombia\/wp-json\/wp\/v2\/media\/14400"}],"wp:attachment":[{"href":"https:\/\/qa.amirlatam.com\/colombia\/wp-json\/wp\/v2\/media?parent=84"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}