{"id":5161,"date":"2026-06-16T22:47:41","date_gmt":"2026-06-16T22:47:41","guid":{"rendered":"https:\/\/hydrogeo.com.pe\/web\/?page_id=5161"},"modified":"2026-06-17T03:22:03","modified_gmt":"2026-06-17T03:22:03","slug":"consultores","status":"publish","type":"page","link":"https:\/\/hydrogeo.com.pe\/web\/consultores\/","title":{"rendered":"Consultores"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"5161\" class=\"elementor elementor-5161\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section data-particle_enable=\"false\" data-particle-mobile-disabled=\"false\" class=\"elementor-section elementor-top-section elementor-element elementor-element-cc686a5 elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"cc686a5\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t\t<div class=\"elementor-background-overlay\"><\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-17bae9f animated-slow elementor-invisible\" data-id=\"17bae9f\" data-element_type=\"column\" data-e-type=\"column\" data-settings=\"{&quot;animation&quot;:&quot;fadeIn&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-2dee0f3 elementor-widget elementor-widget-heading\" data-id=\"2dee0f3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">NUESTROS CONSULTORES<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section data-particle_enable=\"false\" data-particle-mobile-disabled=\"false\" class=\"elementor-section elementor-top-section elementor-element elementor-element-9c2b712 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"9c2b712\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-0c766d6\" data-id=\"0c766d6\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-cf9fa49 elementor-widget elementor-widget-spacer\" data-id=\"cf9fa49\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-410df48 elementor-widget elementor-widget-text-editor\" data-id=\"410df48\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Detr\u00e1s de cada proyecto hay un equipo comprometido.Conoce a nuestros expertos: profesionales que dise\u00f1an e implementan soluciones integrales para la gesti\u00f3n sostenible del agua y los recursos naturales.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-82f7604 elementor-widget elementor-widget-spacer\" data-id=\"82f7604\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c1fea04 elementor-widget elementor-widget-html\" data-id=\"c1fea04\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\r\n<style>\r\n\/* \u2500\u2500 Reset scoped \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\n#hg-consultores,\r\n#hg-consultores * {\r\n  box-sizing: border-box;\r\n  margin: 0;\r\n  padding: 0;\r\n}\r\n\r\n\/* \u2500\u2500 Contenedor \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\n#hg-consultores {\r\n  font-family: 'PT Sans Narrow', 'PT Sans', Arial, sans-serif;\r\n  width: 100%;\r\n  padding: 0 52px;\r\n}\r\n\r\n@media (max-width: 900px) {\r\n  #hg-consultores { padding: 0 28px; }\r\n}\r\n\r\n@media (max-width: 480px) {\r\n  #hg-consultores { padding: 0 16px; }\r\n}\r\n\r\n\/* \u2500\u2500 Barra de filtros \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\n#hg-consultores .hg-filterbar {\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: space-between;\r\n  flex-wrap: wrap;\r\n  gap: 14px;\r\n  margin-bottom: 36px;\r\n  padding-bottom: 22px;\r\n  border-bottom: 1px solid #e2e8f0;\r\n}\r\n\r\n#hg-consultores .hg-pills {\r\n  display: flex;\r\n  flex-wrap: wrap;\r\n  gap: 8px;\r\n}\r\n\r\n\/* Pill base *\/\r\n#hg-consultores .hg-pill {\r\n  display: inline-flex;\r\n  align-items: center;\r\n  gap: 6px;\r\n  padding: 7px 18px;\r\n  border-radius: 100px;\r\n  border: 1.5px solid #cbd5e1;\r\n  background: transparent;\r\n  color: #5b6770;\r\n  font-family: 'PT Sans Narrow', 'PT Sans', sans-serif;\r\n  font-size: 0.82rem;\r\n  font-weight: 600;\r\n  letter-spacing: 0.3px;\r\n  cursor: pointer;\r\n  transition:\r\n    border-color 0.22s ease,\r\n    color 0.22s ease,\r\n    background 0.22s ease,\r\n    box-shadow 0.22s ease;\r\n  white-space: nowrap;\r\n  line-height: 1;\r\n}\r\n\r\n#hg-consultores .hg-pill:hover {\r\n  border-color: #0047bb;\r\n  color: #0047bb;\r\n  background: rgba(0, 71, 187, 0.06);\r\n}\r\n\r\n#hg-consultores .hg-pill.is-active {\r\n  background: #0047bb;\r\n  border-color: #0047bb;\r\n  color: #fff;\r\n  box-shadow: 0 4px 14px rgba(0, 71, 187, 0.3);\r\n}\r\n\r\n\/* Badge de conteo en cada pill *\/\r\n#hg-consultores .hg-pill-count {\r\n  display: inline-flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n  width: 18px;\r\n  height: 18px;\r\n  border-radius: 50%;\r\n  background: rgba(0,0,0,0.12);\r\n  font-size: 0.68rem;\r\n  font-weight: 700;\r\n  line-height: 1;\r\n}\r\n\r\n#hg-consultores .hg-pill.is-active .hg-pill-count {\r\n  background: rgba(255,255,255,0.25);\r\n}\r\n\r\n\/* \u2500\u2500 Contador de resultados \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\n#hg-consultores .hg-count {\r\n  font-size: 0.8rem;\r\n  color: #94a3b8;\r\n  white-space: nowrap;\r\n  letter-spacing: 0.1px;\r\n}\r\n\r\n#hg-consultores .hg-count strong {\r\n  color: #0047bb;\r\n  font-weight: 700;\r\n}\r\n\r\n\/* \u2500\u2500 Grilla \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\n#hg-consultores .hg-grid {\r\n  display: grid;\r\n  grid-template-columns: repeat(4, 1fr);\r\n  gap: 22px;\r\n}\r\n\r\n@media (max-width: 1100px) {\r\n  #hg-consultores .hg-grid { grid-template-columns: repeat(2, 1fr); }\r\n}\r\n\r\n@media (max-width: 580px) {\r\n  #hg-consultores .hg-grid { grid-template-columns: 1fr; gap: 16px; }\r\n}\r\n\r\n\/* \u2500\u2500 Tarjeta \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\n#hg-consultores .hg-card {\r\n  position: relative;\r\n  aspect-ratio: 3 \/ 4;\r\n  border-radius: 12px;\r\n  overflow: hidden;\r\n  cursor: pointer;\r\n  box-shadow: 0 2px 14px rgba(0, 0, 0, 0.1);\r\n  transition: box-shadow 0.3s ease, transform 0.3s ease;\r\n}\r\n\r\n#hg-consultores .hg-card.is-visible:hover {\r\n  transform: translateY(-6px);\r\n  box-shadow: 0 20px 48px rgba(0, 0, 0, 0.18);\r\n}\r\n\r\n#hg-consultores .hg-card.hg-hidden {\r\n  display: none;\r\n}\r\n\r\n\/* \u2014 Placeholder con iniciales \u2014 *\/\r\n#hg-consultores .hg-card-initial {\r\n  position: absolute;\r\n  top: 0; right: 0; bottom: 0; left: 0;\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n}\r\n\r\n#hg-consultores .hg-initial-badge {\r\n  width: 78px;\r\n  height: 78px;\r\n  border-radius: 50%;\r\n  background: rgba(255, 255, 255, 0.13);\r\n  backdrop-filter: blur(8px);\r\n  -webkit-backdrop-filter: blur(8px);\r\n  border: 2px solid rgba(255, 255, 255, 0.28);\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n  font-size: 1.7rem;\r\n  font-weight: 700;\r\n  color: rgba(255, 255, 255, 0.9);\r\n  letter-spacing: 2px;\r\n  font-family: 'PT Sans Narrow', sans-serif;\r\n  text-shadow: 0 2px 8px rgba(0,0,0,0.3);\r\n}\r\n\r\n\/* \u2014 Foto \u2014 *\/\r\n#hg-consultores .hg-card-img {\r\n  position: absolute;\r\n  top: 0; right: 0; bottom: 0; left: 0;\r\n  width: 100%;\r\n  height: 100%;\r\n  object-fit: cover;\r\n  display: block;\r\n  transition: transform 0.5s ease;\r\n}\r\n\r\n#hg-consultores .hg-card:hover .hg-card-img {\r\n  transform: scale(1.07);\r\n}\r\n\r\n\/* \u2014 Overlay inferior normal \u2014 *\/\r\n#hg-consultores .hg-card-info {\r\n  position: absolute;\r\n  bottom: 0; left: 0; right: 0;\r\n  padding: 60px 18px 18px;\r\n  background: linear-gradient(\r\n    to top,\r\n    rgba(5, 10, 30, 0.92) 0%,\r\n    rgba(5, 10, 30, 0.4) 60%,\r\n    transparent 100%\r\n  );\r\n  transition: opacity 0.3s ease;\r\n  pointer-events: none;\r\n}\r\n\r\n#hg-consultores .hg-card:hover .hg-card-info {\r\n  opacity: 0;\r\n}\r\n\r\n#hg-consultores .hg-card-name {\r\n  color: #fff;\r\n  font-size: 1rem;\r\n  font-weight: 700;\r\n  text-transform: uppercase;\r\n  letter-spacing: 0.5px;\r\n  line-height: 1.22;\r\n  margin-bottom: 5px;\r\n}\r\n\r\n#hg-consultores .hg-card-role {\r\n  color: rgba(255, 255, 255, 0.72);\r\n  font-size: 0.77rem;\r\n  line-height: 1.35;\r\n}\r\n\r\n\/* \u2014 Overlay hover azul \u2014 *\/\r\n#hg-consultores .hg-card-hov {\r\n  position: absolute;\r\n  top: 0; right: 0; bottom: 0; left: 0;\r\n  background: rgba(0, 71, 187, 0.94);\r\n  display: flex;\r\n  flex-direction: column;\r\n  align-items: center;\r\n  justify-content: center;\r\n  padding: 28px 22px;\r\n  text-align: center;\r\n  opacity: 0;\r\n  transition: opacity 0.3s ease;\r\n  pointer-events: none;\r\n}\r\n\r\n#hg-consultores .hg-card:hover .hg-card-hov {\r\n  opacity: 1;\r\n  pointer-events: auto;\r\n}\r\n\r\n#hg-consultores .hg-hov-name {\r\n  color: #fff;\r\n  font-size: 0.97rem;\r\n  font-weight: 700;\r\n  text-transform: uppercase;\r\n  letter-spacing: 0.5px;\r\n  line-height: 1.2;\r\n  margin-bottom: 5px;\r\n}\r\n\r\n#hg-consultores .hg-hov-role {\r\n  color: rgba(255, 255, 255, 0.8);\r\n  font-size: 0.76rem;\r\n  width: 100%;\r\n  padding-bottom: 13px;\r\n  margin-bottom: 13px;\r\n  border-bottom: 1px solid rgba(255, 255, 255, 0.22);\r\n}\r\n\r\n#hg-consultores .hg-hov-desc {\r\n  color: rgba(255, 255, 255, 0.88);\r\n  font-size: 0.76rem;\r\n  line-height: 1.6;\r\n  margin-bottom: 18px;\r\n  display: -webkit-box;\r\n  -webkit-line-clamp: 4;\r\n  -webkit-box-orient: vertical;\r\n  overflow: hidden;\r\n  text-align: left;\r\n}\r\n\r\n#hg-consultores .hg-hov-btn {\r\n  flex-shrink: 0;\r\n  background: transparent;\r\n  border: 1.5px solid rgba(255, 255, 255, 0.82);\r\n  color: #fff;\r\n  padding: 8px 24px;\r\n  font-family: 'PT Sans Narrow', 'PT Sans', sans-serif;\r\n  font-size: 0.75rem;\r\n  font-weight: 700;\r\n  text-transform: uppercase;\r\n  letter-spacing: 1.6px;\r\n  cursor: pointer;\r\n  border-radius: 100px;\r\n  transition: background 0.22s ease, color 0.22s ease;\r\n}\r\n\r\n#hg-consultores .hg-hov-btn:hover {\r\n  background: #fff;\r\n  color: #0047bb;\r\n}\r\n\r\n\/* \u2500\u2500 Estado cargando \/ error \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\n#hg-consultores .hg-status {\r\n  grid-column: 1 \/ -1;\r\n  text-align: center;\r\n  padding: 80px 20px;\r\n  color: #94a3b8;\r\n  font-size: 0.95rem;\r\n  font-family: 'PT Sans Narrow', 'PT Sans', sans-serif;\r\n}\r\n\r\n#hg-consultores .hg-empty {\r\n  grid-column: 1 \/ -1;\r\n  text-align: center;\r\n  padding: 60px 20px;\r\n  color: #94a3b8;\r\n  font-size: 0.9rem;\r\n}\r\n\r\n#hg-consultores .hg-spinner {\r\n  display: inline-block;\r\n  width: 20px;\r\n  height: 20px;\r\n  border: 3px solid #e2e8f0;\r\n  border-top-color: #0047bb;\r\n  border-radius: 50%;\r\n  animation: hg-spin 0.75s linear infinite;\r\n  vertical-align: middle;\r\n  margin-left: 10px;\r\n}\r\n\r\n@keyframes hg-spin {\r\n  to { transform: rotate(360deg); }\r\n}\r\n\r\n\/* \u2500\u2500 Modal overlay \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\n#hg-modal-overlay {\r\n  position: fixed;\r\n  top: 0; right: 0; bottom: 0; left: 0;\r\n  background: rgba(5, 12, 38, 0.72);\r\n  z-index: 999999;\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n  padding: 24px;\r\n  animation: hg-ov-in 0.2s ease;\r\n}\r\n\r\n@keyframes hg-ov-in {\r\n  from { opacity: 0; }\r\n  to   { opacity: 1; }\r\n}\r\n\r\n\/* \u2500\u2500 Modal caja \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\n#hg-modal {\r\n  background: #fff;\r\n  border-radius: 16px;\r\n  width: 100%;\r\n  max-width: 540px;\r\n  max-height: 90vh;\r\n  overflow-y: auto;\r\n  box-shadow: 0 32px 80px rgba(0, 0, 0, 0.3);\r\n  animation: hg-modal-in 0.32s cubic-bezier(0.34, 1.4, 0.64, 1);\r\n}\r\n\r\n@keyframes hg-modal-in {\r\n  from { transform: scale(0.88) translateY(24px); opacity: 0; }\r\n  to   { transform: scale(1)    translateY(0);    opacity: 1; }\r\n}\r\n\r\n\/* \u2014 Cabecera \u2014 *\/\r\n#hg-modal .hg-mhead {\r\n  background: linear-gradient(140deg, #0047bb 0%, #082e80 100%);\r\n  padding: 40px 40px 30px;\r\n  text-align: center;\r\n  position: relative;\r\n  border-radius: 16px 16px 0 0;\r\n}\r\n\r\n\/* \u2014 Bot\u00f3n cerrar \u2014 *\/\r\n#hg-modal .hg-mclose {\r\n  position: absolute;\r\n  top: 14px; right: 14px;\r\n  width: 32px; height: 32px;\r\n  border-radius: 50%;\r\n  border: none;\r\n  background: rgba(255, 255, 255, 0.15);\r\n  color: #fff;\r\n  font-size: 17px;\r\n  cursor: pointer;\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n  transition: background 0.2s ease;\r\n  font-family: sans-serif;\r\n  line-height: 1;\r\n}\r\n\r\n#hg-modal .hg-mclose:hover {\r\n  background: rgba(255, 255, 255, 0.28);\r\n}\r\n\r\n\/* \u2014 Avatar circular \u2014 *\/\r\n#hg-modal .hg-mavatar {\r\n  width: 120px; height: 120px;\r\n  border-radius: 50%;\r\n  border: 4px solid rgba(255, 255, 255, 0.78);\r\n  object-fit: cover;\r\n  display: block;\r\n  margin: 0 auto 16px;\r\n  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.25);\r\n}\r\n\r\n#hg-modal .hg-mavatar-ph {\r\n  width: 120px; height: 120px;\r\n  border-radius: 50%;\r\n  border: 4px solid rgba(255, 255, 255, 0.5);\r\n  margin: 0 auto 16px;\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.25);\r\n  font-size: 2.2rem;\r\n  font-weight: 700;\r\n  color: rgba(255, 255, 255, 0.9);\r\n  font-family: 'PT Sans Narrow', sans-serif;\r\n  letter-spacing: 3px;\r\n  text-shadow: 0 2px 8px rgba(0,0,0,0.3);\r\n}\r\n\r\n#hg-modal .hg-mname {\r\n  color: #fff;\r\n  font-size: 1.3rem;\r\n  font-weight: 700;\r\n  text-transform: uppercase;\r\n  letter-spacing: 0.4px;\r\n  line-height: 1.22;\r\n  margin-bottom: 6px;\r\n  font-family: 'PT Sans Narrow', 'PT Sans', sans-serif;\r\n}\r\n\r\n#hg-modal .hg-mrole {\r\n  color: rgba(255, 255, 255, 0.78);\r\n  font-size: 0.9rem;\r\n  font-family: 'PT Sans Narrow', 'PT Sans', sans-serif;\r\n}\r\n\r\n\/* Separador decorativo *\/\r\n#hg-modal .hg-mdivider {\r\n  width: 36px; height: 3px;\r\n  background: rgba(255, 255, 255, 0.35);\r\n  border-radius: 2px;\r\n  margin: 14px auto 0;\r\n}\r\n\r\n\/* \u2014 Cuerpo \u2014 *\/\r\n#hg-modal .hg-mbody {\r\n  padding: 30px 40px 40px;\r\n}\r\n\r\n#hg-modal .hg-mbody p {\r\n  color: #475569;\r\n  font-size: 0.97rem;\r\n  line-height: 1.78;\r\n  font-family: 'PT Sans Narrow', 'PT Sans', sans-serif;\r\n  margin-bottom: 12px;\r\n}\r\n\r\n#hg-modal .hg-mbody p:last-child {\r\n  margin-bottom: 0;\r\n}\r\n\r\n\/* \u2500\u2500 Responsive modal \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\n@media (max-width: 480px) {\r\n  #hg-modal .hg-mhead {\r\n    padding: 30px 24px 24px;\r\n    border-radius: 14px 14px 0 0;\r\n  }\r\n  #hg-modal .hg-mbody {\r\n    padding: 24px;\r\n  }\r\n  #hg-modal .hg-mname { font-size: 1.1rem; }\r\n  #hg-modal .hg-mavatar,\r\n  #hg-modal .hg-mavatar-ph {\r\n    width: 96px; height: 96px;\r\n  }\r\n  #hg-modal .hg-mavatar-ph { font-size: 1.75rem; }\r\n}\r\n\r\n@media (max-width: 580px) {\r\n  #hg-consultores .hg-filterbar {\r\n    flex-direction: column;\r\n    align-items: flex-start;\r\n  }\r\n}\r\n<\/style>\r\n\r\n<!-- \u2500\u2500 Markup \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\r\n<div id=\"hg-consultores\">\r\n\r\n  <!-- Barra de filtros (oculta hasta que carguen datos) -->\r\n  <div class=\"hg-filterbar\" id=\"hg-filterbar\" style=\"display:none\">\r\n    <div class=\"hg-pills\" id=\"hg-pills\"><\/div>\r\n    <div class=\"hg-count\"  id=\"hg-count\"><\/div>\r\n  <\/div>\r\n\r\n  <!-- Grilla -->\r\n  <div class=\"hg-grid\" id=\"hg-grid\">\r\n    <div class=\"hg-status\">Cargando consultores <span class=\"hg-spinner\"><\/span><\/div>\r\n  <\/div>\r\n\r\n<\/div>\r\n\r\n<!-- \u2500\u2500 Script (IIFE, sin conflictos con jQuery \/ WordPress) \u2500\u2500\u2500\u2500\u2500 -->\r\n<script>\r\n(function () {\r\n  'use strict';\r\n\r\n  \/* \u2500\u2500 Supabase \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\n  var SB_URL = 'https:\/\/jipxmuerteclugbmkcsp.supabase.co';\r\n  var SB_KEY = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9'\r\n             + '.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImppcHhtdWVydGVjbHVnYm1rY3NwIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NzQxNjQwMjEsImV4cCI6MjA4OTc0MDAyMX0'\r\n             + '.YmL-0LHclv37res8D9CfghNDPG4jQ_dv477fCtbi_lA';\r\n\r\n  \/* \u2500\u2500 Estado global \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\n  var allData      = [];\r\n  var activeFilter = 'todos';\r\n  var activeModal  = null;\r\n\r\n  \/* \u2500\u2500 Paleta de gradientes para placeholder \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\n  var GRADS = [\r\n    'linear-gradient(145deg,#0f2d6b,#1a4d8f)',\r\n    'linear-gradient(145deg,#0a2557,#1a6a8a)',\r\n    'linear-gradient(145deg,#1b2f5e,#2e6080)',\r\n    'linear-gradient(145deg,#162346,#3b5f7a)',\r\n    'linear-gradient(145deg,#0d2d66,#1f5799)',\r\n  ];\r\n\r\n  function gradFor(nombre) {\r\n    var h = 0;\r\n    for (var i = 0; i < nombre.length; i++) h = ((h << 5) - h + nombre.charCodeAt(i)) | 0;\r\n    return GRADS[Math.abs(h) % GRADS.length];\r\n  }\r\n\r\n  \/* \u2500\u2500 Iniciales \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\n  function initials(nombre) {\r\n    var clean = nombre.replace(\/^(Dr\\.|Dra\\.|Ing\\.|Mg\\.|Lic\\.)\\s*\/i, '').trim();\r\n    var parts = clean.split(\/\\s+\/);\r\n    if (parts.length >= 2) return (parts[0][0] + parts[1][0]).toUpperCase();\r\n    return clean.slice(0, 2).toUpperCase();\r\n  }\r\n\r\n  \/* \u2500\u2500 Clip de texto \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\n  function clip(s, n) {\r\n    if (!s || s.length <= n) return s || '';\r\n    var cut = s.slice(0, n);\r\n    var sp  = cut.lastIndexOf(' ');\r\n    return (sp > 0 ? cut.slice(0, sp) : cut) + '\\u2026';\r\n  }\r\n\r\n  \/* \u2500\u2500 Crear elemento \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\n  function el(tag, cls) {\r\n    var e = document.createElement(tag);\r\n    if (cls) e.className = cls;\r\n    return e;\r\n  }\r\n\r\n  \/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n     TARJETA\r\n  \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n  function buildCard(c, idx) {\r\n    var card = el('div', 'hg-card');\r\n    card.setAttribute('tabindex', '0');\r\n    card.setAttribute('role', 'button');\r\n    card.setAttribute('aria-label', 'Ver perfil de ' + c.nombre);\r\n    card.dataset.ocu = c.ocupacion || '';\r\n\r\n    \/* Gradiente de fondo + estado invisible inicial *\/\r\n    card.style.background  = gradFor(c.nombre);\r\n    card.style.opacity     = '0';\r\n    card.style.transform   = 'translateY(28px)';\r\n    card.style.transition  = 'none';\r\n\r\n    \/* \u2014 Placeholder con iniciales \u2014 *\/\r\n    var ph    = el('div', 'hg-card-initial');\r\n    var badge = el('div', 'hg-initial-badge');\r\n    badge.textContent = initials(c.nombre);\r\n    ph.appendChild(badge);\r\n    card.appendChild(ph);\r\n\r\n    \/* \u2014 Foto \u2014 *\/\r\n    if (c.imagen_url) {\r\n      var img    = el('img', 'hg-card-img');\r\n      img.src    = c.imagen_url;\r\n      img.alt    = c.nombre;\r\n      img.loading = 'lazy';\r\n      img.addEventListener('error', function () { img.style.display = 'none'; });\r\n      card.appendChild(img);\r\n    }\r\n\r\n    \/* \u2014 Info inferior \u2014 *\/\r\n    var info   = el('div', 'hg-card-info');\r\n    var nameEl = el('div', 'hg-card-name'); nameEl.textContent = c.nombre;\r\n    var roleEl = el('div', 'hg-card-role'); roleEl.textContent = c.ocupacion;\r\n    info.appendChild(nameEl);\r\n    info.appendChild(roleEl);\r\n    card.appendChild(info);\r\n\r\n    \/* \u2014 Hover overlay \u2014 *\/\r\n    var hov   = el('div', 'hg-card-hov');\r\n    var hName = el('div', 'hg-hov-name'); hName.textContent = c.nombre;\r\n    var hRole = el('div', 'hg-hov-role'); hRole.textContent = c.ocupacion;\r\n    hov.appendChild(hName);\r\n    hov.appendChild(hRole);\r\n    if (c.descripcion) {\r\n      var hDesc = el('div', 'hg-hov-desc');\r\n      hDesc.textContent = clip(c.descripcion, 140);\r\n      hov.appendChild(hDesc);\r\n    }\r\n    var hBtn = el('button', 'hg-hov-btn');\r\n    hBtn.textContent = 'Ver perfil';\r\n    hov.appendChild(hBtn);\r\n    card.appendChild(hov);\r\n\r\n    \/* \u2014 Eventos \u2014 *\/\r\n    card.addEventListener('click', function () { openModal(c); });\r\n    card.addEventListener('keydown', function (e) {\r\n      if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); openModal(c); }\r\n    });\r\n\r\n    \/* \u2014 Animaci\u00f3n de entrada escalonada \u2014 *\/\r\n    var delay = 60 + idx * 88;\r\n    setTimeout(function () {\r\n      card.style.transition = 'opacity 0.55s ease, transform 0.55s ease';\r\n      card.style.opacity    = '1';\r\n      card.style.transform  = 'translateY(0)';\r\n      \/* Tras la animaci\u00f3n, ceder control al CSS (hover) *\/\r\n      setTimeout(function () {\r\n        card.style.opacity    = '';\r\n        card.style.transform  = '';\r\n        card.style.transition = '';\r\n        card.classList.add('is-visible');\r\n      }, 600);\r\n    }, delay);\r\n\r\n    return card;\r\n  }\r\n\r\n  \/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n     MODAL\r\n  \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n  function openModal(c) {\r\n    closeModal();\r\n\r\n    var overlay = document.createElement('div');\r\n    overlay.id  = 'hg-modal-overlay';\r\n    overlay.addEventListener('click', function (e) {\r\n      if (e.target === overlay) closeModal();\r\n    });\r\n\r\n    var box = document.createElement('div');\r\n    box.id   = 'hg-modal';\r\n    box.setAttribute('role', 'dialog');\r\n    box.setAttribute('aria-modal', 'true');\r\n\r\n    \/* \u2014 Cabecera \u2014 *\/\r\n    var head     = el('div', 'hg-mhead');\r\n    var closeBtn = el('button', 'hg-mclose');\r\n    closeBtn.setAttribute('aria-label', 'Cerrar');\r\n    closeBtn.innerHTML = '&#x2715;';\r\n    closeBtn.addEventListener('click', closeModal);\r\n    head.appendChild(closeBtn);\r\n\r\n    \/* Avatar *\/\r\n    if (c.imagen_url) {\r\n      var avImg = el('img', 'hg-mavatar');\r\n      avImg.src = c.imagen_url;\r\n      avImg.alt = c.nombre;\r\n      var avPh  = el('div', 'hg-mavatar-ph');\r\n      avPh.style.background = gradFor(c.nombre);\r\n      avPh.style.display    = 'none';\r\n      avPh.textContent      = initials(c.nombre);\r\n      avImg.addEventListener('error', function () {\r\n        avImg.style.display = 'none';\r\n        avPh.style.display  = 'flex';\r\n      });\r\n      head.appendChild(avImg);\r\n      head.appendChild(avPh);\r\n    } else {\r\n      var avPh2 = el('div', 'hg-mavatar-ph');\r\n      avPh2.style.background = gradFor(c.nombre);\r\n      avPh2.textContent      = initials(c.nombre);\r\n      head.appendChild(avPh2);\r\n    }\r\n\r\n    var mName = el('div', 'hg-mname');    mName.textContent = c.nombre;\r\n    var mRole = el('div', 'hg-mrole');    mRole.textContent = c.ocupacion;\r\n    var mDiv  = el('div', 'hg-mdivider');\r\n    head.appendChild(mName);\r\n    head.appendChild(mRole);\r\n    head.appendChild(mDiv);\r\n    box.appendChild(head);\r\n\r\n    \/* \u2014 Cuerpo \u2014 *\/\r\n    var body = el('div', 'hg-mbody');\r\n    var desc = c.descripcion ? c.descripcion.trim() : '';\r\n    if (desc) {\r\n      desc.split(\/\\n+\/).forEach(function (line) {\r\n        if (line.trim()) {\r\n          var p = el('p');\r\n          p.textContent = line.trim();\r\n          body.appendChild(p);\r\n        }\r\n      });\r\n    } else {\r\n      var noDesc = el('p');\r\n      noDesc.textContent = 'Informaci\u00f3n no disponible.';\r\n      body.appendChild(noDesc);\r\n    }\r\n    box.appendChild(body);\r\n\r\n    overlay.appendChild(box);\r\n    document.body.appendChild(overlay);\r\n    activeModal = overlay;\r\n\r\n    document.addEventListener('keydown', onEsc);\r\n    document.body.style.overflow = 'hidden';\r\n  }\r\n\r\n  function closeModal() {\r\n    if (activeModal) {\r\n      activeModal.remove();\r\n      activeModal = null;\r\n      document.removeEventListener('keydown', onEsc);\r\n      document.body.style.overflow = '';\r\n    }\r\n  }\r\n\r\n  function onEsc(e) { if (e.key === 'Escape') closeModal(); }\r\n\r\n  \/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n     FILTROS \u2014 generados din\u00e1micamente desde ocupacion\r\n  \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n  function buildFilters(data) {\r\n    \/* Contar cu\u00e1ntos hay por ocupaci\u00f3n *\/\r\n    var countMap = {};\r\n    data.forEach(function (c) {\r\n      if (c.ocupacion) countMap[c.ocupacion] = (countMap[c.ocupacion] || 0) + 1;\r\n    });\r\n    var ocupaciones = Object.keys(countMap);\r\n\r\n    var pillsEl = document.getElementById('hg-pills');\r\n    if (!pillsEl) return;\r\n    pillsEl.innerHTML = '';\r\n\r\n    \/* Pill \"Todos\" *\/\r\n    makePill('Todos', 'todos', data.length, true, pillsEl);\r\n\r\n    \/* Una pill por cada ocupaci\u00f3n \u00fanica *\/\r\n    ocupaciones.forEach(function (o) {\r\n      makePill(o, o, countMap[o], false, pillsEl);\r\n    });\r\n\r\n    \/* Mostrar barra *\/\r\n    var fb = document.getElementById('hg-filterbar');\r\n    if (fb) fb.style.display = '';   \/* CSS flexbox toma control *\/\r\n\r\n    updateCount(data.length, data.length);\r\n  }\r\n\r\n  function makePill(label, value, count, active, container) {\r\n    var pill = el('button', 'hg-pill' + (active ? ' is-active' : ''));\r\n    pill.dataset.f = value;\r\n\r\n    var txt = document.createTextNode(label + '\\u00A0');\r\n    pill.appendChild(txt);\r\n\r\n    var badge = el('span', 'hg-pill-count');\r\n    badge.textContent = count;\r\n    pill.appendChild(badge);\r\n\r\n    pill.addEventListener('click', function () { applyFilter(value); });\r\n    container.appendChild(pill);\r\n  }\r\n\r\n  function applyFilter(value) {\r\n    activeFilter = value;\r\n\r\n    \/* Actualizar pills *\/\r\n    document.querySelectorAll('#hg-pills .hg-pill').forEach(function (p) {\r\n      p.classList.toggle('is-active', p.dataset.f === value);\r\n    });\r\n\r\n    \/* Mostrar \/ ocultar tarjetas *\/\r\n    var visible = 0;\r\n    document.querySelectorAll('#hg-grid .hg-card').forEach(function (card) {\r\n      var match = value === 'todos' || card.dataset.ocu === value;\r\n      card.classList.toggle('hg-hidden', !match);\r\n      if (match) visible++;\r\n    });\r\n\r\n    updateCount(visible, allData.length);\r\n\r\n    var emptyEl = document.getElementById('hg-empty');\r\n    if (emptyEl) emptyEl.style.display = visible === 0 ? '' : 'none';\r\n  }\r\n\r\n  function updateCount(visible, total) {\r\n    var countEl = document.getElementById('hg-count');\r\n    if (countEl) {\r\n      countEl.innerHTML =\r\n        'Mostrando <strong>' + visible + '<\/strong> de ' + total + ' consultor' +\r\n        (total !== 1 ? 'es' : '');\r\n    }\r\n  }\r\n\r\n  \/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n     RENDER\r\n  \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n  function render(data) {\r\n    allData = data;\r\n    var grid = document.getElementById('hg-grid');\r\n    if (!grid) return;\r\n    grid.innerHTML = '';\r\n\r\n    if (!data || !data.length) {\r\n      var msg = el('div', 'hg-status');\r\n      msg.textContent = 'No hay consultores disponibles.';\r\n      grid.appendChild(msg);\r\n      return;\r\n    }\r\n\r\n    data.forEach(function (c, i) { grid.appendChild(buildCard(c, i)); });\r\n\r\n    \/* Mensaje \"sin resultados\" para filtros vac\u00edos *\/\r\n    var emptyEl = el('div', 'hg-empty');\r\n    emptyEl.id  = 'hg-empty';\r\n    emptyEl.textContent = 'No hay consultores con esta especialidad.';\r\n    emptyEl.style.display = 'none';\r\n    grid.appendChild(emptyEl);\r\n\r\n    buildFilters(data);\r\n  }\r\n\r\n  function showErr(msg) {\r\n    var grid = document.getElementById('hg-grid');\r\n    if (!grid) return;\r\n    grid.innerHTML = '';\r\n    var d = el('div', 'hg-status');\r\n    d.style.color   = '#e53e3e';\r\n    d.textContent   = msg;\r\n    grid.appendChild(d);\r\n  }\r\n\r\n  \/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n     FETCH SUPABASE (XHR \u2014 sin conflictos con fetch polyfills WP)\r\n  \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n  function loadData() {\r\n    var url = SB_URL\r\n            + '\/rest\/v1\/consultores'\r\n            + '?select=id,nombre,ocupacion,descripcion,imagen_url,activo'\r\n            + '&activo=eq.true'\r\n            + '&order=id.asc';\r\n\r\n    var xhr = new XMLHttpRequest();\r\n    xhr.open('GET', url, true);\r\n    xhr.setRequestHeader('apikey',        SB_KEY);\r\n    xhr.setRequestHeader('Authorization', 'Bearer ' + SB_KEY);\r\n    xhr.setRequestHeader('Accept',        'application\/json');\r\n\r\n    xhr.onload = function () {\r\n      if (xhr.status >= 200 && xhr.status < 300) {\r\n        try { render(JSON.parse(xhr.responseText)); }\r\n        catch (e) { showErr('Error al procesar los datos.'); }\r\n      } else {\r\n        showErr('Error al cargar los consultores (HTTP ' + xhr.status + ').');\r\n      }\r\n    };\r\n\r\n    xhr.onerror = function () { showErr('Error de red. Verifique su conexi\u00f3n.'); };\r\n    xhr.send();\r\n  }\r\n\r\n  \/* \u2500\u2500 Init: compatible con Elementor (no usar jQuery.ready) \u2500\u2500\u2500 *\/\r\n  if (document.readyState === 'loading') {\r\n    window.addEventListener('DOMContentLoaded', loadData);\r\n  } else {\r\n    loadData();\r\n  }\r\n\r\n}());\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section data-particle_enable=\"false\" data-particle-mobile-disabled=\"false\" class=\"elementor-section elementor-top-section elementor-element elementor-element-ceeedb6 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"ceeedb6\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-42d0bbc\" data-id=\"42d0bbc\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-c735880 elementor-widget elementor-widget-spacer\" data-id=\"c735880\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>NUESTROS CONSULTORES Detr\u00e1s de cada proyecto hay un equipo comprometido.Conoce a nuestros expertos: profesionales que dise\u00f1an e implementan soluciones integrales para la gesti\u00f3n sostenible del agua y los recursos naturales. Cargando consultores<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-5161","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/hydrogeo.com.pe\/web\/wp-json\/wp\/v2\/pages\/5161","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hydrogeo.com.pe\/web\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/hydrogeo.com.pe\/web\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/hydrogeo.com.pe\/web\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hydrogeo.com.pe\/web\/wp-json\/wp\/v2\/comments?post=5161"}],"version-history":[{"count":26,"href":"https:\/\/hydrogeo.com.pe\/web\/wp-json\/wp\/v2\/pages\/5161\/revisions"}],"predecessor-version":[{"id":5191,"href":"https:\/\/hydrogeo.com.pe\/web\/wp-json\/wp\/v2\/pages\/5161\/revisions\/5191"}],"wp:attachment":[{"href":"https:\/\/hydrogeo.com.pe\/web\/wp-json\/wp\/v2\/media?parent=5161"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}