/*
Theme Name: NeoPeptidos
Theme URI: https://neopeptidos.com
Author: NeoPeptidos
Author URI: https://neopeptidos.com
Description: Tema oficial de NeoPeptidos. Compatible con WooCommerce. v9.31.2: (1) FIX ERROR FATAL DE REGISTRO — neopep_render_new_account_email() crasheaba el alta de cuentas/checkout: el hook woocommerce_created_customer_notification envia 3 argumentos y la funcion exigia 4, ademas trataba un array como objeto de usuario. Firma corregida a (customer_id, new_customer_data, password_generated) y ahora resuelve el usuario por ID. (2) CALIDAD — 10 COA actualizados a WebP de alta resolucion (legibles al ampliar en el lightbox) y galeria reordenada por importancia comercial (Semaglutide, Tirzepatide, Retatrutide, BPC-157, GLOW...). (3) CHECKOUT — \"Colonia / Referencia (opcional)\" pasa a \"Colonia\" OBLIGATORIA; nuevo campo \"Numero interior\" OPCIONAL arriba de Colonia que al guardar se adjunta a address_1 para viajar a WhatsApp/PDF/emails sin tocar esos consumidores; reconciliados los dos filtros que chocaban. (4) PROTOCOLOS — descripcion amigable (que_es) anadida a los 52 compuestos y mostrada al seleccionar; aviso acortado y menos invasivo conservando el encuadre de investigacion; corregida la cita de Survodutide (obesidad = le Roux, Lancet 2024; MASH = NEJM 2024). (5) ALMACENAMIENTO — solucion reconstituida pasa de \"maximo 30 dias\" a \"30-60 dias\" en tarjeta, timeline, tabla y FAQ. v9.31.0: PROTOCOLOS RESTAURADOS A RANGOS COMPLETOS — se restaura inc/neopep-protocolos-data.php de v9.22.0 con los rangos de dosis reportados en la literatura para TODOS los compuestos (BPC-157, TB-500, CJC-1295, Ipamorelin, combos, etc.) que habian sido sanitizados en v9.30.0 a mensajes genericos. La pagina /protocolos/ vuelve a mostrar los rangos bajo/alto y frecuencia originales para los 52 productos. Todo lo demas permanece identico a v9.30.0. v9.30.0: (A) FIX CHECKOUT "a veces falla, al reintentar funciona" — causa multiple, corregida en 4 frentes: (1) HONEYPOT anti-spam ya no rechaza pedidos por error cuando un gestor de contrasenas (Keychain/Google/1Password) rellena el campo trampa: ahora un JS lo limpia antes de enviar y el servidor solo rechaza si hay firma de spam real (URL/enlace); (2) RATE LIMIT ya no cuenta intentos fallidos (incrementa solo al CREAR el pedido, hook woocommerce_checkout_order_processed) y sube de 3 a 10/hora/IP para no bloquear IPs compartidas por CGNAT de Telcel/AT&T; (3) NONCE de checkout de 12h a 2 dias para evitar el error "la pagina expiro" en pestanas dejadas abiertas; (4) VALIDACION DE TELEFONO mucho mas flexible: acepta 10-15 digitos en cualquier formato y nunca bloquea un pedido legitimo (antes exigia patrones rigidos y rechazaba por un digito de mas, extension o numero raro). (B) PROTOCOLOS REACTIVADO — pagina /protocolos/ y enlace en footer restaurados. Datos VERIFICADOS: se conservan los rangos de dosis solo donde hay base clinica real en humanos / farmaco aprobado (GLP-1, tesamorelina, HGH, PT-141, etc., cotejados con la literatura); en los 33 compuestos SIN dosificacion clinica establecida (BPC-157, TB-500, peptidos GH, combos, etc.) se retiran los numeros de "comunidad"/preclinicos que se presentaban como literatura y se deja contexto honesto + ruta al Programa para Medicos. v9.29.0: (1) BANNER DE CUPON aparece AHORA SIEMPRE desde que carga la pagina (antes esperaba 6s o scroll, por eso a veces no aparecia); persiste en todas las paginas hasta que el cliente lo cierra o inicia sesion. (2) CADENA DE FRIO CORREGIDA a la realidad en todo el sitio: se conserva refrigerado 2-8°C (no -20°C) y NO hay cadena de frio en transito; el peptido liofilizado es estable a temperatura ambiente durante semanas/meses, asi que el envio no lo compromete. Corregido en ficha de producto (badge + bloque de garantia), una reseña, /calidad/, home (lista de calidad) y llms.txt. Se conservan las recomendaciones cientificas de almacenamiento al investigador (-20°C largo plazo). (3) PAGINA DE ALMACENAMIENTO: (a) FIX del bug de zoom/desbordamiento horizontal — la tabla de referencia rapida (5 columnas) ahora va en un contenedor con scroll propio (overflow-x:auto, min-width) para que no expanda la pagina en movil; (b) corregida la informacion falsa de que el peptido solo tolera temperatura ambiente "por periodos cortos / durante el trayecto": ahora refleja que en polvo liofilizado es estable semanas/meses (tarjeta de transito, timeline de almacen y envio, fila de tabla y FAQ). (4) AVISO DE PAGO SPEI simplificado: de la caja ambar tipo advertencia a un texto limpio y estetico centrado "Pago por transferencia SPEI" encima del boton. v9.28.0: (1) AVISO SPEI ARREGLADO — no aparecia porque se registraba desde la plantilla con timing poco fiable; ahora vive en inc/neopep-checkout-enhancements.php junto a la nota de envio DHL (mismo hook woocommerce_review_order_before_submit que SI renderiza), prioridad 6 para quedar DEBAJO del envio y ENCIMA del boton "Solicitar orden de compra", con estilos inline (caja ambar) para no depender de CSS externo. (2) BOTON "VOLVER ARRIBA" — CSS anti back-to-top ampliado con selectores comodin ([id*=back-to-top], [class*=scrolltop], [aria-label*=arriba], etc.) y tambien enganchado en wp_footer; si AUN persiste, el plugin usa un selector propio o vive en iframe/shadow DOM y hay que identificarlo por Inspeccionar. (3) Recuadro "La Marca #1 en Mexico" del hero cambia de dorado a AZUL de marca (gradiente teal-dark -> teal, borde cyan), acorde al diseno. v9.27.0: (1) Aviso de pago en checkout REFORZADO — texto mas claro "Pago por transferencia bancaria (SPEI)" con borde teal mas visible, encima del boton de solicitar orden (hook woocommerce_review_order_before_submit; el checkout usa el shortcode estandar [woocommerce_checkout] asi que dispara correctamente). (2) Banner de cupon — subtexto ahora dice "Cupon - toca el codigo para copiarlo" y al copiar muestra confirmacion "Cupon copiado en portapapeles" (badge verde sobre la pildora) ademas del cambio del boton a "Copiado". (3) Mensaje "La Marca #1 en Mexico" agregado en el hero del inicio (pildora dorada arriba del badge de calidad). NOTA: es un claim de superioridad no verificable; ver advertencia de riesgo legal/PROFECO. (4) CSS defensivo para ocultar el boton flotante "volver arriba" que inyecta un plugin externo (no es del tema): cubre selectores comunes (#scroll-to-top, .back-to-top, #wpfront-scroll-top-container, etc.). Si persiste, identificar el plugin e desactivarlo. v9.26.0: Ajustes de conversion y confianza solicitados. (1) AVISO DE PAGO MOVIDO AL CHECKOUT — la nota "Pago por transferencia SPEI" se quita de la ficha de producto y se muestra en /pago/ JUSTO ANTES del boton de pedido (hook woocommerce_review_order_before_submit): el cliente ya lleno sus datos, asi no se asusta y evita la sorpresa post-pedido. (2) BANNER DE CUPON REDISENADO — ya no es barra full-width que tapaba el boton del chat (Neobot, abajo-derecha); ahora es una pildora flotante abajo-IZQUIERDA, z-index por debajo del chat, que en movil deja libre la esquina del chat; ademas PERSISTE en TODAS las paginas hasta que el cliente la cierra (la cookie de "visto" se setea solo al cerrar, no al mostrarse). (3) AUTO-LOGIN ARREGLADO — tras una compra el cliente no quedaba logueado (el login AJAX nativo de WC fallaba con el gateway custom de WhatsApp). Nuevo safety net en template_redirect que, al cargar la pagina de gracias (tanto /pedido-recibido/?folio=...&key=... del gateway WhatsApp como el order-received nativo), valida la key del pedido e inicia la sesion del comprador. Esto ademas oculta el banner de cupon tras la 1a compra. (4) SECCION PROTOCOLOS RETIRADA — se quita el enlace "Protocolos" del footer y se desactiva la auto-creacion de la pagina /protocolos/ (si ya existe en el sitio, enviarla a la papelera manualmente). Los DATOS de protocolos siguen intactos porque alimentan el "Perfil cientifico" de cada ficha. (5) MAS RESEÑAS — de 6 a 14, mismo formato, ciudades y fechas 2026 variadas, enfocadas en servicio/empaque/entrega/COA (sin claims de uso humano); se mantiene la eliminacion del badge falso "Compra verificada" de v9.25.0. (6) MENOS ENFASIS "SOLO INVESTIGACION" EN EL HOME — el badge del hero (lo primero que se lee) pasa de "Peptidos de Investigacion Certificados" a "Pureza >=99% certificada por HPLC - COA por lote", liderando con calidad/confianza; se conserva "peptidos de investigacion" como categoria/keyword en H1 y meta (es el termino de busqueda real y la etiqueta correcta del producto). v9.25.0: Paquete de CONVERSION + SEO on-page. (1) PAGINA DE GRACIAS CON PAGO INMEDIATO (inc/neopep-thank-you.php) — antes el cliente tenia que esperar el email/WhatsApp para saber a donde transferir (ventana enorme de desercion); ahora la CLABE y el concepto (numero de pedido) aparecen de inmediato tras confirmar el pedido, con boton de copiar en un toque + boton "Ya transferi, avisar por WhatsApp"; datos bancarios parametrizables via opciones neopep_pay_clabe/banco/titular con fallback a los actuales. (2) AVISO DE METODO DE PAGO EN LA FICHA — linea "Pago por transferencia SPEI, proceso guiado por WhatsApp" bajo el precio, para que nadie se sorprenda al final del checkout. (3) H1 DEL HOME REESCRITO — "La Conexion Infinita de la Salud y la Ciencia" (poetico, sin keyword) cambia a "Peptidos de investigacion en Mexico, pureza >=99% HPLC"; ademas se corrige el texto roto del hero ("...Republica Mexicana express a todo Mexico" duplicado). (4) RESEÑAS — eliminado el badge falso "Compra verificada" de las reseñas hardcodeadas (riesgo de confianza/penalizacion); las reseñas siguen visibles, pendiente migrar a reseñas reales de WooCommerce via el modulo de solicitud post-compra. (5) EMAIL DE RECUPERACION DE CARRITO AL CLIENTE (inc/neopep-cart-recovery-customer-email.php, nuevo) — cron horario que ~1h despues del abandono envia al CLIENTE un email con sus productos + el cupon NEW10 si es cliente nuevo; reutiliza los parsers del modulo admin de abandono (debe cargar despues de el), dedup propio, skip si ya hay orden, envio via wp_mail/Brevo; complementa (no reemplaza) la alerta admin existente. Operativo pendiente del usuario: configurar plantillas de titulo/meta en Rank Math, conectar Google Search Console, ejecutar backlinks y publicar el articulo gold-standard de tirzepatida (entregado aparte). v9.24.0: (1) BANNER DE BIENVENIDA NO INVASIVO (inc/neopep-welcome-banner.php) — barra inferior delgada (NO pop-up modal) con 10% en la 1a compra via cupon NEW10, boton de copiar al portapapeles con feedback y cierre; aparece tras 8s O al hacer scroll >500px (lo que ocurra primero), maximo 1 vez cada 30 dias por dispositivo (cookie); NO se muestra a usuarios logueados, a quien ya compro (cookie neopep_has_purchased seteada en la pagina de gracias), ni en checkout/pago/pedido-recibido/mi-cuenta; mobile-first. La auto-creacion de cuenta + auto-login tras la compra YA existia (inc/neopep-checkout-account.php) y WooCommerce loguea al cliente al crear la cuenta, por lo que el banner desaparece automaticamente tras la 1a compra. (2) FICHA DE PRODUCTO EN MOVIL = ACORDEON (woocommerce/single-product.php) — las secciones Descripcion/Especificaciones/Reconstitucion/Investigacion se vuelven colapsables SOLO en movil (<=640px): resuelve "la ficha es muy larga e invasiva" sin perder el SEO de v9.23.0 porque el contenido sigue en el DOM (colapso por max-height, NO display:none), asi que Googlebot mobile-first lo indexa completo; la 1a seccion (Descripcion) abierta por defecto, el resto colapsadas; desktop intacto. (3) SEO DE COMPRA + LOCAL — titulo de producto cambia "Uso Investigacion" por "Pureza >=99% HPLC" (mejor CTR, menos clinico); meta description y Open Graph de producto reescritos con intencion de compra y senales locales ("Comprar [X] en Mexico... COA por lote... Envio 24-72h a CDMX, Guadalajara, Monterrey y todo Mexico") replicando el patron con el que rankea la competencia; fallback de descripcion vacia ahora keyword-rich + local (anti thin-content). (4) MENOS DISCLAIMERS REDUNDANTES — se elimina la caja amarilla de aviso que se inyectaba en CADA ficha (hook neopep_research_warning desactivado) y las 2 cajas .wb de las pestanas Descripcion/Investigacion; el recordatorio del perfil cientifico se suaviza a una linea; la ficha pasa de ~4 avisos a 1 + el legal del footer. El disclaimer completo se conserva donde realmente importa (/legal/, /protocolos/, /etiquetado-investigacion/, FAQ, footer). v9.23.0: (1) FIX SEO CRITICO — las fichas mostraban su contenido (Especificaciones/Reconstitucion/Investigacion) en tabs con display:none, que Google indexa con bajo peso; ahora son secciones visibles e indexables con encabezados H2 (la tabnav se oculta, el contenido se apila). (2) Nuevo inc/neopep-seo-guard.php — si detecta Rank Math/Yoast/SEOPress/AIOSEO activo, el tema CEDE title/meta-description/Open-Graph/schema-Product al plugin para no duplicar etiquetas (evita doble title/meta y schema Product duplicado que invalida el rich snippet de precio); configurable via filtro neopep_seo_standdown_parts; aviso en admin. Sin plugin SEO, el tema sigue igual. v9.22.2: Perfil cientifico rediseñado como VISTA PREVIA — se quitan via/pureza/documentacion; ahora es un teaser (mecanismo + areas + excerpt del articulo) con boton \"Leer perfil cientifico completo\" que enlaza al articulo del Centro de Recursos vinculado (vinculo inverso recurso._neopep_related_product == slug del producto). La profundidad real vive en el articulo /recursos/ con su propia URL indexable. v9.22.1: FIX — el bloque \"Perfil cientifico\" no aparecia en NINGUNA ficha porque single-product.php no usa el loop estandar de WP (sin the_post()), asi que el filtro the_content con guard de in_the_loop() nunca se disparaba. Ahora el bloque se llama DIRECTO en la pestana Descripcion via neopep_product_science_block(), por lo que aparece siempre (incluso en productos con descripcion vacia). v9.22.0: (1) Nueva pagina /guia/ — Guia Completa interactiva de peptidos (page-templates/page-guia.php): activo educativo + SEO informacional, con barra de progreso, indice navegable, 6 secciones (~12 min), explorador interactivo de familias con enlaces internos a productos, quiz de 6 preguntas con puntaje, glosario y CTA al catalogo; compliance research-use sin dosis ni claims; auto-creacion al activar el tema (tambien via admin_init la primera vez); enlazada desde el nav. (2) Nuevo modulo inc/neopep-product-science.php — inyecta un bloque \"Perfil cientifico\" en CADA ficha de producto (via filtro the_content, sin editar single-product.php), jalando mecanismo, areas de investigacion, familia, via y referencia desde neopep_protocolos_data() emparejado por slug; OMITE dosis/frecuencia (siguen solo en /protocolos/). Objetivo: dar a las fichas la profundidad que rankea para \"comprar [compuesto] en Mexico\" reutilizando contenido propio (contenido unico, no thin content). v9.21.4: ajustes al PDF de orden — solo fecha (sin hora), sin linea de estado, sin pie legal, CLABE unica (grande), aviso de concepto limpio (sin fondo amarillo, con barra teal), WhatsApp como enlace clickable (wa.me), salto de linea antes de la guia, redaccion DHL \"por WhatsApp y correo electronico\", y pagina unica forzada (sin saltos). v9.21.3: se incluye la carpeta inc/lib/font/ con las definiciones de fuente que FPDF requiere (faltaban y causaban \"Could not load font definition file\"); se fija FPDF_FONTPATH explícitamente. COA comprimidos para aligerar el theme. v9.21.2: auto-diagnóstico — si el PDF de la orden no se adjunta, la nota del pedido escribe el MOTIVO exacto (FPDF no encontrado, carpeta no escribible, etc.); cada punto de falla lanza un mensaje claro y se protege contra fecha de pedido nula. v9.21.1: la generación del PDF de la orden ya no puede impedir el envío del correo admin (se manda igual sin adjunto si el PDF falla, con error_log). Se elimina toda mención a OXXO / link de pago con tarjeta de cara al cliente: FAQ (página), home (paso de compra, garantía de pago y FAQ) y FAQ-schema de SEO — ahora todo refleja transferencia SPEI coordinada por WhatsApp. v9.21.0: el correo de nueva orden que recibe el admin ahora adjunta un PDF formal de la orden de compra (FPDF, en inc/neopep-order-pdf.php) listo para reenviar al cliente por WhatsApp tras confirmar el pago — incluye datos del cliente, productos con nombres reales, total, bloque de DATOS PARA TRANSFERENCIA con la CLABE aislada en grande para copiar fácil, recordatorio de poner SOLO el número de orden en el concepto, garantía de entrega (reenvío/devolución si no llega) y validez de 48 h. El mensaje de WhatsApp precargado deja de mencionar OXXO/link de tarjeta y ahora muestra garantía de entrega + validez de 48 h. v9.17.0: Protocolos — disclaimer solo con \"Aviso importante\" en negritas, GLOW/KLOW con rangos numéricos, se quita botón WhatsApp y se muestra imagen del producto centrada con link. Nuevas páginas /medicos/ (15% con cédula + código único) y /mayoristas/ (20% desde 10 piezas), enlazadas desde /contacto/ (botones B2B ahora van a esas páginas). Checkout: etiqueta \"Colonia\" para address_2 (conserva autollenado) + nota \"Envío DHL Express, 1-3 días\" arriba del botón. Fichas de producto: reseñas reescritas sin afirmaciones falsas (COA adjunto, empaque térmico) ni framing de investigación/uso; regresa la lupa de búsqueda al header. Asistente: botón a WhatsApp dentro del widget de Neobot y en la página /asistente/; se oculta el botón flotante de WhatsApp huérfano en todo el frontend (Neobot es el único flotante). v9.16.0: nueva página /protocolos/ (enlazada SOLO desde el footer, columna Recursos) — selector interactivo de compuesto que muestra rangos de dosis BAJO/ALTO reportados en la literatura científica para los 52 productos del catálogo, con mecanismo, áreas de investigación, referencia y nota de limitaciones por compuesto; disclaimer prominente de uso exclusivo en investigación / no apto para consumo humano; datos en inc/neopep-protocolos-data.php; auto-creación de la página al activar el tema. Incluye todo lo de v9.15.0: mensaje de WhatsApp de confirmación de pedido reescrito con espaciado real + opciones OXXO/link de tarjeta, y FIX del bug de saltos de línea (link wa.me del email admin ahora se imprime con esc_attr() en lugar de esc_url(), que eliminaba los %0A); copy de pago del sitio (FAQ + inicio) corregida: se elimina la mención falsa a Mercado Pago/checkout de tarjeta, ahora refleja SPEI + OXXO + link de tarjeta coordinados por WhatsApp. v9.14.0: contenido REDACTADO y embebido para los 45 productos del catálogo (research-use, sin eficacia/dosis), vinculado por slug o nombre; el generador crea borradores ya escritos. v9.13.3: placeholders VISIBLES entre [corchetes] + nota de aviso en los borradores (antes eran comentarios HTML invisibles en el editor). v9.13.2: generador fijado a las claves reales del panel NeoPeptidos (_neopep_cas/_formula/_mw/_purity/_secuencia); ficha tecnica con secuencia y pureza reales. v9.13.1: generador tambien lee campos personalizados/ACF (no solo atributos) y boton de diagnostico de datos crudos. v9.13.0: generador de borradores del Centro de Recursos (Herramientas -> \"Recursos: generador\") — crea 1 borrador \"Que es [Producto]\" por producto, ficha tecnica auto-rellenada desde atributos (CAS/formula/peso auto-detectados), producto relacionado vinculado y 3 FAQ iniciales; vista previa antes de crear; idempotente; nunca publica. v9.12.0: titulos con intencion comercial (Comprar [peptido] en Mexico ...) via sistema central + fix de <title> duplicado (se eliminaron los hardcodeados de las plantillas); Centro de Recursos programatico: meta box por articulo (producto relacionado + FAQ), schema BlogPosting + FAQPage automatico, CTA dinamico al producto relacionado y bloque FAQ visible. v9.11.0: optimizacion SEO/LLM — alternateName + disambiguatingDescription (marca NeoPeptidos vs «neuropeptidos») en Organization/WebSite/LocalBusiness; brand self-ref; meta description automatica para productos/blog/recursos sin duplicar las estaticas; paymentAccepted corregido a SPEI/transferencia (quita tarjeta/OXXO/Mercado Pago); nota de marca en /llms.txt. v9.10.1: alerta admin de carritos abandonados con telefono — cron horario lee tabla del plugin Cart Abandonment Recovery (CartFlows) y manda a info@neopeptidos.com email con datos del cliente + link de WhatsApp pre-cargado para remarketing manual; ventana 23-25h post-abandono; skip si ya hay orden con ese email; dedup via wp_options. Incluye v9.10.0: calculadora de reconstitucion con selector mg/mcg; fix critico de honeypot; perf checkout ~10x mas rapido (async via Action Scheduler); PDF sin datos SPEI. v9.22.2: Perfil cientifico rediseñado como VISTA PREVIA — se quitan via/pureza/documentacion; ahora es un teaser (mecanismo + areas + excerpt del articulo) con boton "Leer perfil cientifico completo" que enlaza al articulo del Centro de Recursos vinculado (vinculo inverso recurso._neopep_related_product == slug del producto). La profundidad real vive en el articulo /recursos/ con su propia URL indexable. v9.22.1: FIX — el bloque "Perfil cientifico" no aparecia en NINGUNA ficha porque single-product.php no usa el loop estandar de WP (sin the_post()), asi que el filtro the_content con guard de in_the_loop() nunca se disparaba. Ahora el bloque se llama DIRECTO en la pestana Descripcion via neopep_product_science_block(), por lo que aparece siempre (incluso en productos con descripcion vacia). v9.22.0: (1) Nueva pagina /guia/ — Guia Completa interactiva de peptidos (page-templates/page-guia.php): activo educativo + SEO informacional, con barra de progreso, indice navegable, 6 secciones (~12 min), explorador interactivo de familias con enlaces internos a productos, quiz de 6 preguntas con puntaje, glosario y CTA al catalogo; compliance research-use sin dosis ni claims; auto-creacion al activar el tema (tambien via admin_init la primera vez); enlazada desde el nav. (2) Nuevo modulo inc/neopep-product-science.php — inyecta un bloque "Perfil cientifico" en CADA ficha de producto (via filtro the_content, sin editar single-product.php), jalando mecanismo, areas de investigacion, familia, via y referencia desde neopep_protocolos_data() emparejado por slug; OMITE dosis/frecuencia (siguen solo en /protocolos/). Objetivo: dar a las fichas la profundidad que rankea para "comprar [compuesto] en Mexico" reutilizando contenido propio (contenido unico, no thin content). v9.21.4: ajustes al PDF de orden — solo fecha (sin hora), sin linea de estado, sin pie legal, CLABE unica (grande), aviso de concepto limpio (sin fondo amarillo, con barra teal), WhatsApp como enlace clickable (wa.me), salto de linea antes de la guia, redaccion DHL "por WhatsApp y correo electronico", y pagina unica forzada (sin saltos). v9.21.3: se incluye la carpeta inc/lib/font/ con las definiciones de fuente que FPDF requiere (faltaban y causaban "Could not load font definition file"); se fija FPDF_FONTPATH explícitamente. COA comprimidos para aligerar el theme. v9.21.2: auto-diagnóstico — si el PDF de la orden no se adjunta, la nota del pedido escribe el MOTIVO exacto (FPDF no encontrado, carpeta no escribible, etc.); cada punto de falla lanza un mensaje claro y se protege contra fecha de pedido nula. v9.21.1: la generación del PDF de la orden ya no puede impedir el envío del correo admin (se manda igual sin adjunto si el PDF falla, con error_log). Se elimina toda mención a OXXO / link de pago con tarjeta de cara al cliente: FAQ (página), home (paso de compra, garantía de pago y FAQ) y FAQ-schema de SEO — ahora todo refleja transferencia SPEI coordinada por WhatsApp. v9.21.0: el correo de nueva orden que recibe el admin ahora adjunta un PDF formal de la orden de compra (FPDF, en inc/neopep-order-pdf.php) listo para reenviar al cliente por WhatsApp tras confirmar el pago — incluye datos del cliente, productos con nombres reales, total, bloque de DATOS PARA TRANSFERENCIA con la CLABE aislada en grande para copiar fácil, recordatorio de poner SOLO el número de orden en el concepto, garantía de entrega (reenvío/devolución si no llega) y validez de 48 h. El mensaje de WhatsApp precargado deja de mencionar OXXO/link de tarjeta y ahora muestra garantía de entrega + validez de 48 h. v9.17.0: Protocolos — disclaimer solo con "Aviso importante" en negritas, GLOW/KLOW con rangos numéricos, se quita botón WhatsApp y se muestra imagen del producto centrada con link. Nuevas páginas /medicos/ (15% con cédula + código único) y /mayoristas/ (20% desde 10 piezas), enlazadas desde /contacto/ (botones B2B ahora van a esas páginas). Checkout: etiqueta "Colonia" para address_2 (conserva autollenado) + nota "Envío DHL Express, 1-3 días" arriba del botón. Fichas de producto: reseñas reescritas sin afirmaciones falsas (COA adjunto, empaque térmico) ni framing de investigación/uso; regresa la lupa de búsqueda al header. Asistente: botón a WhatsApp dentro del widget de Neobot y en la página /asistente/; se oculta el botón flotante de WhatsApp huérfano en todo el frontend (Neobot es el único flotante). v9.16.0: nueva página /protocolos/ (enlazada SOLO desde el footer, columna Recursos) — selector interactivo de compuesto que muestra rangos de dosis BAJO/ALTO reportados en la literatura científica para los 52 productos del catálogo, con mecanismo, áreas de investigación, referencia y nota de limitaciones por compuesto; disclaimer prominente de uso exclusivo en investigación / no apto para consumo humano; datos en inc/neopep-protocolos-data.php; auto-creación de la página al activar el tema. Incluye todo lo de v9.15.0: mensaje de WhatsApp de confirmación de pedido reescrito con espaciado real + opciones OXXO/link de tarjeta, y FIX del bug de saltos de línea (link wa.me del email admin ahora se imprime con esc_attr() en lugar de esc_url(), que eliminaba los %0A); copy de pago del sitio (FAQ + inicio) corregida: se elimina la mención falsa a Mercado Pago/checkout de tarjeta, ahora refleja SPEI + OXXO + link de tarjeta coordinados por WhatsApp. v9.14.0: contenido REDACTADO y embebido para los 45 productos del catálogo (research-use, sin eficacia/dosis), vinculado por slug o nombre; el generador crea borradores ya escritos. v9.13.3: placeholders VISIBLES entre [corchetes] + nota de aviso en los borradores (antes eran comentarios HTML invisibles en el editor). v9.13.2: generador fijado a las claves reales del panel NeoPeptidos (_neopep_cas/_formula/_mw/_purity/_secuencia); ficha tecnica con secuencia y pureza reales. v9.13.1: generador tambien lee campos personalizados/ACF (no solo atributos) y boton de diagnostico de datos crudos. v9.13.0: generador de borradores del Centro de Recursos (Herramientas -> "Recursos: generador") — crea 1 borrador "Que es [Producto]" por producto, ficha tecnica auto-rellenada desde atributos (CAS/formula/peso auto-detectados), producto relacionado vinculado y 3 FAQ iniciales; vista previa antes de crear; idempotente; nunca publica. v9.12.0: titulos con intencion comercial (Comprar [peptido] en Mexico ...) via sistema central + fix de <title> duplicado (se eliminaron los hardcodeados de las plantillas); Centro de Recursos programatico: meta box por articulo (producto relacionado + FAQ), schema BlogPosting + FAQPage automatico, CTA dinamico al producto relacionado y bloque FAQ visible. v9.11.0: optimizacion SEO/LLM — alternateName + disambiguatingDescription (marca NeoPeptidos vs «neuropeptidos») en Organization/WebSite/LocalBusiness; brand self-ref; meta description automatica para productos/blog/recursos sin duplicar las estaticas; paymentAccepted corregido a SPEI/transferencia (quita tarjeta/OXXO/Mercado Pago); nota de marca en /llms.txt. v9.10.1: alerta admin de carritos abandonados con telefono — cron horario lee tabla del plugin Cart Abandonment Recovery (CartFlows) y manda a info@neopeptidos.com email con datos del cliente + link de WhatsApp pre-cargado para remarketing manual; ventana 23-25h post-abandono; skip si ya hay orden con ese email; dedup via wp_options. Incluye v9.10.0: calculadora de reconstitucion con selector mg/mcg; fix critico de honeypot; perf checkout ~10x mas rapido (async via Action Scheduler); PDF sin datos SPEI.
Version: 9.32.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: Proprietary
Text Domain: neopeptidos
Tags: ecommerce, woocommerce, custom
*/

/*
   Este style.css solo registra el tema en WordPress.
   El CSS del diseno vive embebido en cada page-template (igual que en el HTML original).
*/

/* Helpers globales */
.logo-img { display: block; }
