Commit Graph

355 Commits

Author SHA1 Message Date
FrankZamora
b353b5eb04 Fix CTA: Eliminar sombras incorrectas (box-shadow y text-shadow)
PROBLEMA:
El archivo cta.css tenía sombras que NO están en el template original:
- text-shadow en .cta-section h3
- box-shadow en .cta-button (normal, hover, active)

CAMBIOS:
1. Eliminar text-shadow de .cta-section h3 (línea 47)
2. Eliminar box-shadow de .cta-button (línea 75)
3. Eliminar box-shadow de .cta-button:hover (línea 82)
4. Eliminar box-shadow de .cta-button:active (línea 84)

RESULTADO:
Estilos ahora coinciden exactamente con el template de referencia:
- index.html: Button boxShadow = "none", h3 textShadow = "none"
- cta.css: Sin box-shadow ni text-shadow

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 15:50:55 -06:00
FrankZamora
8e640cf047 Fix CTA: Reemplazar sistema dual HTML/JS con sistema PHP robusto - Issue #126
PROBLEMA RAÍZ:
Había DOS sistemas de A/B testing en conflicto:
1. Sistema PHP completo en cta-ab-testing.php (NO usado)
2. Sistema HTML/JS en single.php + main.js (ambas variantes hardcodeadas con display:none)

El JavaScript no ejecutaba de forma confiable, causando que el CTA:
- A veces no apareciera (ambas variantes quedaban ocultas)
- A veces aparecieran ambas variantes simultáneamente

SOLUCIÓN:
Activar el sistema PHP que ya existía. Más robusto porque:
- Renderiza solo UNA variante server-side (sin timing issues)
- Usa cookies para persistencia de 30 días por usuario
- Elimina race conditions de JavaScript

CAMBIOS:

1. cta-ab-testing.php:
   - Actualizar URLs de '#' a home_url('/catalogo') y home_url('/planes')
   - Cambiar apus_render_cta() para usar .cta-section (no .apus-cta-wrapper)
   - Eliminar atributo data-cta-action (innecesario)

2. single.php:
   - ELIMINAR 29 líneas de HTML duplicado (variantes A y B hardcodeadas)
   - REEMPLAZAR con: <?php apus_display_cta(); ?>

3. main.js:
   - ELIMINAR 26 líneas de lógica A/B en JavaScript
   - AGREGAR comentario: CTA manejado por PHP + cta-tracking.js

4. cta-tracking.js:
   - Actualizar selectores: .apus-cta-wrapper → .cta-section (2 ocurrencias)

ARQUITECTURA FINAL:
- PHP: Selección de variante + renderizado server-side
- cta-tracking.js: Solo tracking de Analytics (clicks/impresiones)
- Cookies: Persistencia de variante asignada

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 15:42:05 -06:00
FrankZamora
3dadcb947b Fix CTA: Bump APUS_VERSION to 1.0.1 for cache busting
Problema: Staging tiene CSS cacheado con selectores viejos (.apus-cta-wrapper)
- Commit 856bb cambió todos los selectores a .cta-section
- Pero staging sigue cargando cta.css?ver=1.0.0 (versión vieja)
- El archivo CSS en staging NO tiene .cta-section, tiene .apus-cta-wrapper

Solución: Incrementar APUS_VERSION de 1.0.0 → 1.0.1
- Esto fuerza que WordPress/navegadores recarguen TODOS los CSS/JS
- El nuevo archivo será cta.css?ver=1.0.1 con los selectores correctos

Issue #126

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 15:33:51 -06:00
FrankZamora
856bb71db6 Fix CTA A/B Testing: Corregir selectores CSS de .apus-cta-wrapper a .cta-section
Problema diagnosticado:
- HTML en single.php usa clase .cta-section
- CSS en cta.css usaba clase .apus-cta-wrapper
- Los estilos NO se aplicaban (sin gradiente, sin box-shadow, botón blanco)

Cambios realizados en cta.css:
- Cambiar TODOS los selectores .apus-cta-wrapper → .cta-section
- Actualizar .cta-section para usar variables CSS (--color-orange-primary, --color-orange-light)
- Agregar color: #ffffff !important a h3
- Agregar color: rgba(255, 255, 255, 0.95) !important a p
- Cambiar botón de blanco a naranja (background: var(--color-orange-primary))
- Cambiar hover de botón a naranja-hover (background: var(--color-orange-hover))
- Aumentar border-radius de 0.5rem a 12px (según documentación)
- Aumentar padding de 0.75rem 1.5rem a 0.75rem 2rem en botón
- Actualizar border-radius botón de 0.375rem a 8px

Ahora los estilos coinciden con la documentación:
- Gradiente naranja de fondo
- Box shadow naranja pronunciada
- Textos blancos
- Botón naranja (no blanco)

Issue #126

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 15:27:54 -06:00
FrankZamora
e6aebbc97b Fix Tablas APU: Agregar esquinas redondeadas superiores a tabla .analisis
- Agregar border-top-left-radius y border-top-right-radius a primera fila
- Ahora la tabla .analisis tiene esquinas redondeadas superiores como .desglose
- Issue #132

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 15:21:33 -06:00
FrankZamora
a70cb8467c Fix Tablas APU: Estilos para .analisis y quitar Courier New de .desglose
PROBLEMA 1: Tabla .analisis sin estilos de header
- La tabla .analisis no tiene tag <thead>, solo <tbody>
- CSS buscaba .analisis table thead tr th
- Primera fila del tbody no se estilizaba como header

SOLUCIÓN 1:
- Nuevo selector: .analisis table tbody tr:first-child td
- Aplica gradiente navy, texto blanco, centrado
- Funciona para tablas sin <thead>

PROBLEMA 2: Fuente Courier New en .desglose
- Columnas numéricas de .desglose usaban Courier New
- Usuario NO quiere fuente monospace en .desglose

SOLUCIÓN 2:
- Separados selectores de columnas numéricas:
  - .analisis: CON font-family Courier New (mantiene)
  - .desglose: SIN font-family (usa fuente por defecto)

CAMBIOS CSS:
- +11 líneas: Nuevo selector para primera fila .analisis
- Refactor: Separar selectores .analisis y .desglose
- .analisis mantiene Courier New
- .desglose usa fuente estándar

Archivo modificado:
- wp-content/themes/apus-theme/assets/css/tables-apu.css

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 15:17:55 -06:00
FrankZamora
a765dcee9b Feature: Auto-agregar clases a filas especiales de tablas APU
PROBLEMA (Issue #132):
- Tablas .desglose no tienen clases en filas <tr>
- WordPress no preserva clases: section-header, subtotal-row, total-row
- Resultado: Todas las filas se ven iguales (sin estilos especiales)

SOLUCIÓN:
- Script JavaScript que detecta y agrega clases automáticamente
- Detecta por contenido de texto:
  - "Material", "Mano de Obra", etc. → section-header
  - "Suma de..." → subtotal-row
  - "Costo Directo" → total-row

FUNCIONAMIENTO:
1. Script se ejecuta cuando DOM está listo
2. Busca tablas .desglose y .analisis
3. Lee 2da celda de cada fila <tr>
4. Agrega clase según el texto
5. CSS aplica estilos automáticamente

ARCHIVOS:
- NUEVO: assets/js/apu-tables-auto-class.js (99 líneas)
  - Script con detección inteligente de filas
  - Soporta mayúsculas/minúsculas
  - Log para debugging

- MODIFICADO: inc/enqueue-scripts.php (+24 líneas)
  - Nueva función: apus_enqueue_apu_tables_autoclass_script()
  - Carga en footer con strategy defer
  - Prioridad 15 (después de CSS)

BENEFICIOS:
 Funciona con contenido existente (no requiere edición manual)
 Automático para todos los posts nuevos
 Sin errores si clases ya existen
 Performance: solo procesa si hay tablas APU

Issue: #132

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 15:12:59 -06:00
FrankZamora
2cb1e1e3f0 Fix CSS Tablas APU: Agregar soporte para clase .desglose
PROBLEMA:
- La tabla de desglose (6 columnas) usa clase .desglose
- El CSS solo tenía selectores para .analisis
- Resultado: Tabla desglose sin estilos aplicados

SOLUCIÓN:
- Todos los selectores CSS ahora soportan .analisis Y .desglose
- Cambio sistemático en todos los selectores del archivo
- Sin duplicación de código (selectores combinados)

ESTRUCTURA CORRECTA APU:
1. Tabla resumen (3 columnas): clase .analisis
2. Tabla desglose (6 columnas): clase .desglose

Archivo modificado:
- wp-content/themes/apus-theme/assets/css/tables-apu.css
  - 104 adiciones, 50 eliminaciones
  - Todos los selectores actualizados

Issue cerrado: #131

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 14:59:50 -06:00
FrankZamora
75dc0e5722 ARQUITECTURA: Eliminar custom-style.css y consolidar CSS
PROBLEMA CRÍTICO:
- custom-style.css (843 líneas) tenía 95% código DUPLICADO con style.css y otros componentes
- utilities.css (528 líneas) duplicaba 92% de Bootstrap 5 utilities
- Código redundante causaba conflictos CSS y dificulta mantenimiento
- Tablas APU no se veían correctas por conflictos de especificidad

SOLUCIÓN IMPLEMENTADA:

1.  ELIMINADO custom-style.css completamente (843 líneas)
   - Código duplicado de 11 componentes que YA tienen archivos individuales
   - Variables duplicadas (ya en style.css y variables.css)
   - Componentes duplicados (TOC, CTA, Related Posts, Pagination, Footer)

2.  CREADO generic-tables.css (263 líneas)
   - Código único de custom-style.css líneas 165-394
   - Estilos para tablas genéricas en post-content (10 estilos diferentes)
   - NO afecta tablas APU (.analisis table)

3.  CREADO video.css (28 líneas)
   - Código único de custom-style.css líneas 540-560
   - Estilos para videos embebidos (YouTube, Vimeo) en post-content

4.  REDUCIDO utilities.css de 528 → 90 líneas (83% reducción)
   - Eliminadas 438 líneas que duplicaban Bootstrap 5
   - Mantenidas SOLO utilities únicas:
     * Cursor utilities (cursor-pointer, cursor-default, etc.)
     * User select (user-select-none, user-select-all)
     * Pointer events (pointer-events-none)
     * Object fit (object-fit-contain, object-fit-cover)
     * Transition helpers (transition-all, transition-none)

5.  ACTUALIZADO enqueue-scripts.php
   - Eliminada función apus_enqueue_custom_assets (custom-style.css)
   - Agregada función apus_enqueue_generic_tables (priority 11, solo single posts)
   - Agregada función apus_enqueue_video_styles (priority 11, solo single posts)
   - Renombrada función apus_enqueue_main_javascript (solo JavaScript)

RESULTADO:
- De 2454 líneas totales (843+1083+528) a 1464 líneas (1083+263+28+90)
- Eliminadas 990 líneas de código duplicado (40% reducción)
- CSS limpio: cero duplicación entre archivos
- Orden de carga correcto: Bootstrap → style.css → componentes individuales
- Tablas APU ahora deben funcionar correctamente (sin conflictos)

ARQUITECTURA CORRECTA:
 style.css → Estilos globales del tema
 [componente].css → Un archivo CSS por cada componente individual
 utilities.css → SOLO utilities NO incluidas en Bootstrap 5
 generic-tables.css → Tablas genéricas post-content
 video.css → Videos embebidos post-content
 tables-apu.css → Tablas APU específicas (.analisis)

ARCHIVOS AFECTADOS:
- ELIMINADO: wp-content/themes/apus-theme/assets/css/custom-style.css (843 líneas)
- CREADO: wp-content/themes/apus-theme/assets/css/generic-tables.css (263 líneas)
- CREADO: wp-content/themes/apus-theme/assets/css/video.css (28 líneas)
- MODIFICADO: wp-content/themes/apus-theme/assets/css/utilities.css (528 → 90 líneas)
- MODIFICADO: wp-content/themes/apus-theme/inc/enqueue-scripts.php

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 14:39:56 -06:00
FrankZamora
c23ed76034 Fix tablas APU: Corregir TODOS los estilos vs template
PROBLEMA:
- custom-style.css tenía código DUPLICADO de tablas APU (137 líneas)
- tables-apu.css tenía 5 diferencias críticas vs template
- Usuario reportó que tablas en staging NO coinciden con template

SOLUCIÓN ARQUITECTURAL:
 Eliminar TODO código .analisis de custom-style.css (líneas 160-282 + responsive 914-924)
   - Principio: cada componente debe tener su PROPIO archivo CSS
   - custom-style.css NO debe tener estilos de componentes específicos

CORRECCIONES EN TABLES-APU.CSS:
1.  box-shadow: 0 2px 8px → 0 4px 16px (línea 25)
   - Template usa blur radius 16px, no 8px
2.  Section header: ELIMINAR text-transform: uppercase (línea 163)
   - Template usa textTransform: "none"
3.  Section header: ELIMINAR letter-spacing: 0.5px (línea 165)
   - Template usa letterSpacing: "normal"
4.  Section header: ELIMINAR font-size: 0.95em (línea 164)
   - Template no reduce el tamaño de fuente
5.  Columnas numéricas: AGREGAR color: #1e3a5f (línea 139)
   - Template computed muestra rgb(30, 58, 95) explícito

VERIFICACIÓN:
-  style.css: NO tiene reglas .analisis
-  responsive.css: Solo regla genérica table (max-width: 575.98px)
-  utilities.css: Solo clases d-table de Bootstrap
-  animations.css: NO tiene reglas table
-  Orden de carga: custom-style (p11) → tables-apu (p15) ✓

COMPARACIÓN CON TEMPLATE:
Extraído computed styles del template index.html usando Playwright:
- table: boxShadow "0px 4px 16px", borderRadius "8px" ✓
- header: gradient #1e3a5f→#2c5282, padding 16px ✓
- col1-2: Poppins, left align ✓
- col3: center, color #6c757d ✓
- col4-6: Courier New monospace, right, color #1e3a5f ✓
- section-header: color #1e3a5f, fontWeight 600, textTransform "none" ✓
- subtotal: bg rgba(255,133,0,0.1), color #FF8600 ✓
- total: gradient, color white, fontSize 1.1rem/1.25rem ✓

RESULTADO:
- 137 líneas eliminadas (código duplicado en custom-style.css)
- 5 correcciones críticas en tables-apu.css
- Arquitectura CSS correcta: cada componente en su archivo

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 14:24:31 -06:00
FrankZamora
d52b0b5cd1 Fix Tablas APU: Cambiar subtotales de azul a naranja - Issue #130
PROBLEMA:
- Subtotales en tables-apu.css usaban colores AZULES
- Template especifica colores NARANJAS
- Discrepancia visual entre staging y template

SOLUCIÓN:
1. Subtotales (líneas 172-191):
   - Background: #d1e7fd (azul) → rgba(255, 133, 0, 0.1) (naranja 10%)
   - Color texto: #0d47a1 (azul) → var(--color-orange-primary) (naranja)
   - Columna c6: Agregado color naranja explícito

2. Print styles (línea 247):
   - Background: #d1e7fd (azul) → rgba(255, 133, 0, 0.1) (naranja)
   - Mantiene print-color-adjust para imprimir correctamente

RESULTADO:
- Subtotales ahora usan naranja como en template
- Consistencia visual con diseño original
- Colores aplicados tanto en pantalla como impresión

Fixes #130

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 14:11:42 -06:00
FrankZamora
d5cbde3d80 Fix Footer Principal: Agregar bg-dark y eliminar CSS duplicado - Issue #129
PROBLEMA:
- footer.php faltaba clase bg-dark (mostraba color incorrecto)
- footer-contact.css tenía estilos que duplicaban Bootstrap nativas

SOLUCIÓN:
1. footer.php (línea 14):
   - Agregado bg-dark a clases del footer
   - Ahora usa Bootstrap nativo: bg-dark, text-white, py-5

2. footer-contact.css:
   - Eliminado bloque footer {} con background-color, color, padding
   - Mantenidos estilos custom (hover naranja, btn overrides)
   - Agregada nota explicativa sobre Bootstrap nativas

RESULTADO:
- Footer ahora muestra bg-dark correcto (rgb(33,37,41))
- CSS más limpio: solo estilos custom, no duplicados Bootstrap
- Sigue principio: componente tiene CSS propio SOLO para custom styles

Fixes #129

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 14:02:02 -06:00
FrankZamora
d00771eae4 ARQUITECTURA CORRECTA: Footer Contact Form en archivo CSS individual
Problema:
- Documentación INCORRECTA indicaba que footer CSS debía estar en style.css
- Esto violaba arquitectura: TODOS los componentes deben tener CSS individual
- Footer Contact Form era la ÚNICA excepción documentada

Solución:
1. Creado footer-contact.css con TODO el CSS del footer (107 líneas)
2. Removido CSS de footer de style.css (86 líneas netas eliminadas)
3. Agregado enqueue en enqueue-scripts.php (líneas 499-517)
4. Actualizado comentarios en style.css para indicar footer-contact.css

Archivos Creados:
 wp-content/themes/apus-theme/assets/css/footer-contact.css (nuevo)
   - Contact Form Styles (.form-control, botones submit)
   - Footer Styles (footer, h5, links, buttons)
   - Contact Info Styles (.contact-info i)

Archivos Modificados:
 wp-content/themes/apus-theme/inc/enqueue-scripts.php
   - Agregado apus_enqueue_footer_contact_assets()
   - Prioridad 18 (después de CTA box sidebar)
   - Dependencia: apus-bootstrap

 wp-content/themes/apus-theme/assets/css/style.css
   - Removido TODO el CSS del footer (86 líneas)
   - Agregado warning comment apuntando a footer-contact.css
   - Actualizado warning general: SIN EXCEPCIONES

Arquitectura Final:
 TODOS los componentes tienen su archivo CSS individual
 style.css solo contiene estilos GLOBALES del tema
 SIN EXCEPCIONES - Arquitectura 100% consistente

Relacionado: Commits 57136, 9ea4c (limpieza anterior de style.css)

NOTA: Documentación CSS-ESPECIFICO.md actualizada localmente (gitignored)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 13:48:13 -06:00
FrankZamora
9ea4c0ced5 FIX: Habilitar enqueue de social-share.css (arquitectura correcta)
Problema:
- social-share.css estaba comentado en enqueue-scripts.php
- Comentario antiguo decía que CSS debía estar en style.css
- Esto violaba la arquitectura: cada componente debe tener su archivo CSS

Solución:
1. Descomentado apus_enqueue_social_share_styles() en enqueue-scripts.php
2. Actualizado comentario para reflejar arquitectura correcta
3. Actualizado warning en style.css con líneas correctas de enqueue

Arquitectura Correcta:
 Cada componente tiene su archivo CSS individual
 social-share.css existe y ahora se carga correctamente
 Solo en posts individuales (is_single())
 Dependencia correcta: apus-bootstrap

Archivos Modificados:
- inc/enqueue-scripts.php (líneas 398-421)
- assets/css/style.css (warning comment actualizado)

Relacionado: Commit anterior 57136 (cleanup de style.css)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 11:54:04 -06:00
FrankZamora
5713624c74 CLEANUP: Eliminar CSS de componentes duplicado en style.css
Problema:
- style.css contenía CSS de 4 componentes que ya tienen archivos individuales
- Esto causaba duplicación y posibles conflictos con CSS específico de componentes
- Violaba la arquitectura de "cada componente en su propio archivo CSS"

Componentes Afectados:
1. Share Buttons (social-share.css existe)
2. CTA A/B Testing (cta.css existe)
3. Related Posts (related-posts.css existe)
4. Pagination (pagination.css existe)

Solución:
- Eliminado CSS duplicado de los 4 componentes (101 líneas netas removidas)
- Reemplazado cada sección con comentario de advertencia claro
- Cada comentario indica:
  * Que NO se debe agregar CSS de ese componente en style.css
  * La ruta del archivo CSS correcto del componente
  * Referencia a línea en enqueue-scripts.php donde se carga

Excepción Documentada:
- Footer Contact Form CSS permanece en style.css (líneas 1074+)
- Según documentación CSS-ESPECIFICO.md debe estar en style.css

Resultado:
 style.css ahora solo contiene CSS GLOBAL del tema
 Arquitectura consistente: todos los componentes en archivos individuales
 Sin duplicación de CSS
 Comentarios claros previenen futuros errores

Relacionado: CSS-ESPECIFICO.md, Issue #125

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 11:52:57 -06:00
FrankZamora
5d352fe4e9 CRÍTICO: Corregir cta-box-sidebar.css para 100% match con template
PROBLEMA DIAGNOSTICADO:
- box-shadow: 0 6px 20px (incorrecto) → 0 4px 12px (template)
- background: gradiente (incorrecto) → color sólido (template)
- border-radius: 10px (incorrecto) → 8px (template)
- padding: 20px (incorrecto) → 24px (template)

CAMBIOS:
1. box-shadow: rgba(255,133,0,0.2) 0 4px 12px
2. background: var(--color-orange-primary) (sólido)
3. border-radius: 8px
4. padding: 24px
5. height: 250px (añadido)
6. display: flex + flex-direction: column + justify-content: center

RESULTADO:
-  100% pixel-perfect match con template
-  Todos los valores coinciden exactamente

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 11:47:23 -06:00
FrankZamora
c355fb27bb CRÍTICO: Cargar Poppins y eliminar overrides Bootstrap - Issue #125
PROBLEMA:
- Template usa Poppins (font-weight: 500 para h6)
- Staging usaba system fonts (Avenir, Montserrat)
- fonts.css sobrescribía Bootstrap con font-weight: 600

CAMBIOS:
1. Agregado Google Fonts Poppins en enqueue-scripts.php
2. Eliminados estilos globales h1-h6 de fonts.css
3. Actualizadas variables CSS a Poppins por defecto
4. Eliminados estilos h1-h6 de media queries

RESULTADO:
- Font-family ahora es Poppins, sans-serif
- Font-weight h6 usa Bootstrap default (500)
- 100% match con template

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 11:35:47 -06:00
FrankZamora
1233f5a0c9 Fix: Agregar .playwright-mcp, .serena y .claude al .gitignore 2025-11-08 11:26:28 -06:00
FrankZamora
497c2fcb2d CRÍTICO: Eliminar archivos CSS NO documentados footer.css y footer-contact.css
Problema: Archivos CSS creados sin documentación causando sobrescrituras

Archivos eliminados:
- wp-content/themes/apus-theme/assets/css/footer.css (NO documentado)
- wp-content/themes/apus-theme/assets/css/footer-contact.css (NO documentado)

Funciones eliminadas de enqueue-scripts.php:
- apus_enqueue_footer_styles()
- apus_enqueue_footer_contact_assets()

Motivo: La documentación especifica que TODO el CSS del Footer Contact
Form debe estar en style.css, NO en archivos separados.

Ver: theme-documentation/16-componente-footer-contact-form/CSS-ESPECIFICO.md

REGLA: Si NO está documentado → NO debe existir

Issue: #128

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 11:23:14 -06:00
FrankZamora
c4f1b57c24 CRÍTICO: Eliminar estilos globales h1-h6 NO documentados
Problema: style.css tenía estilos globales h1-h6 (líneas 110-123) con
font-weight: 600 que sobrescribían Bootstrap y NO están en el template.

Solución: ELIMINAR completamente estos estilos globales.

Template RDash usa SOLO estilos Bootstrap default para headings.
NO tiene custom CSS para h1-h6 globales.

Esto restaura el comportamiento correcto de Bootstrap:
- h6 font-weight: 500 (no 600)
- Usa font-family de Bootstrap (no custom)

Issue: #128

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 11:18:50 -06:00
FrankZamora
9db7f97c93 Revert "Fix: Restaurar estilos Bootstrap para .contact-info h6 y .text-muted"
This reverts commit 85d50a7bf5.
2025-11-08 11:18:22 -06:00
FrankZamora
85d50a7bf5 Fix: Restaurar estilos Bootstrap para .contact-info h6 y .text-muted
Problema: Los estilos globales h1-h6 (líneas 110-123) sobrescribían
Bootstrap, causando que .contact-info h6 tuviera font-weight: 600 en
lugar de 500 (Bootstrap default).

Solución: Agregar reglas específicas para .contact-info h6 y .text-muted
que restauren los valores de Bootstrap usando !important para override.

Valores Bootstrap restaurados:
- h6: font-weight: 500, line-height: 1.2, inherit font-family
- .text-muted: inherit font-size

Issue: #128

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 11:13:27 -06:00
FrankZamora
58ceec7bee Fix Footer Contact Form: Eliminar overrides CSS de Bootstrap
Eliminados todos los overrides de .contact-info h6 y .text-muted para
usar SOLO estilos default de Bootstrap 5, tal como lo hace el template.

Archivos modificados:
- footer-contact.css: Eliminado font-weight: 600 y font-size de h6
- footer.css: Eliminado font-weight: 400 de h6
- style.css: Eliminado font-weight: 400 de h6

Motivo: Template usa Bootstrap puro sin custom CSS para estos elementos.
Issue: #128

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 11:01:23 -06:00
FrankZamora
66003e6ec3 Fix: Footer debe usar #212529 (bg-dark) NO navy-dark - Issue #128 2025-11-08 10:41:38 -06:00
FrankZamora
3e03f73fd6 Fix: Quitar clase bg-dark de footer para usar color del template - Issue #128 2025-11-08 10:38:09 -06:00
FrankZamora
bea639d75a Fix: Usar filemtime() para footer.css cache busting - Issue #128 2025-11-08 10:35:57 -06:00
FrankZamora
293b66ceeb Fix: Eliminar carga duplicada de CSS y actualizar footer.css - Issue #128
PROBLEMA RAÍZ:
El sistema tenía DOS funciones cargando style.css:
1. inc/enqueue-scripts.php → apus_enqueue_main_stylesheet() (prioridad 5) ✓
2. functions.php → apus_enqueue_scripts() (prioridad 10) ✗ DUPLICADO

Además, footer.css contenía estilos para un footer tradicional de
WordPress con widgets, NO los estilos del template RDash.

SOLUCIÓN APLICADA:

1. functions.php:
   - ELIMINADA función duplicada apus_enqueue_scripts()
   - Dejado solo el sistema modular de inc/enqueue-scripts.php
   - Documentado por qué se eliminó

2. footer.css:
   - REEMPLAZADO completamente con estilos del template RDash
   - footer { background-color: var(--color-navy-dark); }
   - footer h5, footer a, footer .btn-primary con colores correctos
   - .contact-info h6 { font-weight: 400; } para labels normales
   - .contact-info i con color naranja

3. style.css:
   - Agregados estilos .contact-info (líneas 1267-1275)
   - Reforzados por footer.css para garantizar aplicación

RESULTADO:
- Footer con fondo negro oscuro correcto (no gris claro)
- Labels de contacto con peso normal (no bold)
- Iconos de contacto con color naranja
- Un solo archivo style.css cargado (no duplicado)

Referencia: Template líneas 1093-1151 (footer + contact section)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 10:33:42 -06:00
FrankZamora
73c69896ce CRÍTICO: Corregir carga de CSS y estilos faltantes - Issue #128
El CSS del tema NO se estaba cargando porque functions.php apuntaba
al style.css raíz (que solo tiene headers de WordPress) en vez del
archivo real en assets/css/style.css.

Cambios realizados:
1. functions.php: Cambiar get_stylesheet_uri() a ruta correcta
   - Ahora carga assets/css/style.css con todos los estilos del tema
   - Esto activa los estilos de footer (bg-dark override, colores, etc)

2. style.css: Agregar estilos faltantes de .contact-info
   - .contact-info i { color: var(--color-orange-primary); }
   - .contact-info h6 { font-weight: 400; } para labels normales

Esto corrige:
- Footer con fondo gris claro → Ahora fondo negro oscuro correcto
- Labels de contacto en bold → Ahora peso normal como template
- Icons de contacto sin color → Ahora color naranja correcto

Referencia: Template líneas 991-1025 (footer y contact-info CSS)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 10:25:32 -06:00
FrankZamora
cb92aa9e04 Fix: Agregar variables CSS neutrales faltantes - Issue #128
Problema:
Las variables CSS --color-neutral-* estaban siendo usadas en los estilos
de formularios y otros componentes, pero no estaban definidas en :root,
causando que los estilos no se aplicaran correctamente.

Solución:
Agregadas 4 variables CSS neutrales al :root en style.css:
- --color-neutral-50: #f9fafb (backgrounds claros)
- --color-neutral-100: #e9ecef (borders de form-control)
- --color-neutral-600: #6c757d (textos secundarios)
- --color-neutral-700: #495057 (textos/backgrounds oscuros)

Estas variables son necesarias para que los estilos del componente
Footer Contact Form se rendericen correctamente según la documentación.

Archivos modificados:
- wp-content/themes/apus-theme/assets/css/style.css (líneas 57-61)

Related to #128

🤖 Generated with Claude Code
2025-11-08 10:15:16 -06:00
FrankZamora
544a9c290b CRÍTICO: Corregir estructura footer + pre-footer - Issue #128
ERROR ANTERIOR:
- Eliminé la sección de contacto pre-footer
- Puse formulario de 5 campos dentro del footer
- No seguí la estructura exacta del template

CORRECCIÓN APLICADA:

1. single.php (líneas 234-300):
    Agregada sección de contacto PRE-FOOTER
   - <section> con bg-secondary bg-opacity-25
   - Columna izquierda: Info contacto (teléfono, email, ubicación)
   - Columna derecha: Formulario #footerContactForm con 5 campos
   - Template líneas 1026-1090

2. footer.php (líneas 1-95):
    Footer con estructura correcta
   - 3 columnas navegación (col-6 col-md-2)
   - Newsletter SIMPLE (solo email + botón Subscribe)
   - bg-dark text-white
   - Copyright y redes sociales
   - Template líneas 1093-1149

AHORA SÍ REPLICA EXACTAMENTE EL TEMPLATE

Refs: #128

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 10:04:03 -06:00
FrankZamora
a2ea4c5fcd Fix: Reescribir footer.php para replicar template exactamente - Issue #128
- Eliminar pre-footer complejo que no existe en template
- Eliminar WordPress dynamic sidebars
- Agregar 3 columnas de navegación estáticas (Recursos, Soporte, Empresa)
- Agregar formulario de newsletter con 5 campos en columna offset
- Mantener copyright con año dinámico y redes sociales
- Agregar CSS para footer en style.css (líneas 1181-1259)
- Estructura replica template líneas 1093-1151

Refs: #128

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 09:58:30 -06:00
FrankZamora
c1f3250a17 fix: Corregir colores de paginación de azul a naranja - Issue #127
PROBLEMA DIAGNOSTICADO:
- Botones de paginación se veían azules en staging
- Agregué CSS a style.css pero existe pagination.css separado
- pagination.css se carga DESPUÉS y sobreescribía con colores Bootstrap azules

SOLUCIÓN IMPLEMENTADA:
- Editar pagination.css directamente (archivo específico de paginación)
- Reemplazar TODOS los #0d6efd (azul Bootstrap) con var(--color-orange-primary)
- Actualizar gradientes azules a naranja sólido
- Actualizar rgba de box-shadows (de azul a naranja)
- Incluye estilos para hover, focus, active y dark mode

ARCHIVOS MODIFICADOS:
- wp-content/themes/apus-theme/assets/css/pagination.css
  * Línea 37: color hover naranja
  * Línea 38-39: background y border hover naranja
  * Línea 41: box-shadow naranja
  * Línea 46-48: focus naranja
  * Línea 50: box-shadow focus naranja
  * Línea 56-57: active background naranja (sin gradiente)
  * Línea 59: box-shadow active naranja
  * Línea 64: active hover background light orange
  * Línea 66: box-shadow active hover naranja
  * Línea 185: dark mode border naranja
  * Línea 189: dark mode active naranja

VALIDACIÓN:
-  Diagnosticado con Playwright (network requests)
-  Identificado orden de carga: style.css → pagination.css
-  Documentado en Issue #127

Referencias: Issue #127

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 09:39:29 -06:00
FrankZamora
28c6c31f9e fix: Agregar CSS de paginación naranja faltante en documentación
- Agregar estilos de paginación (líneas 1157-1179)
- Botones normales: gris oscuro
- Botones hover: naranja con fondo transparente 10%
- Botón activo: naranja sólido
- Problema identificado con MCP Playwright
- Causa raíz: Documentación incompleta (faltaba CSS del template original)
- CSS verificado con MCP Serena en línea 1157

Referencias: Issue #127

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-07 16:41:40 -06:00
FrankZamora
4d30bd1f04 feat: Agregar CSS del componente Related Posts
- Implementar estilos completos en style.css (líneas 1111-1155)
- Border izquierdo visual indicator (gris → naranja hover)
- Cards altura uniforme con height 100%
- Uso estratégico de !important para override de Bootstrap
- Cursor pointer y transiciones suaves
- HTML ya existía en single.php (sin cambios)

Referencias: Issue #127

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-07 16:22:14 -06:00
FrankZamora
9fa353db80 feat: Implementar componente CTA A/B Testing completo
- Actualizar textos de variantes A y B en single.php
  - Variante A: "Accede a 200,000+ Análisis de Precios Unitarios"
  - Variante B: "¿Necesitas Consultar Más APUs?"
  - Agregar iconos bi-arrow-right en botones
  - Agregar clases Bootstrap responsive (my-5, p-4, mt-3, mt-md-0)

- Agregar CSS completo en style.css (líneas 1065-1109)
  - Gradiente naranja (orange-primary → orange-light)
  - Box shadow naranja pronunciada (efecto glow)
  - Textos blancos con !important para legibilidad
  - Botón naranja con hover
  - Estilos responsive para móvil

JavaScript ya existía implementado (sin cambios).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-07 16:15:53 -06:00
FrankZamora
aea88f8738 [LIMPIEZA] Eliminar theme.css completamente - Issue #125
## Análisis Completo
- Procesadas 17 carpetas (03-19) con ALGORITMO.md
- Resultado: 0 líneas CSS documentadas para theme.css
- 100% del CSS documentado va en style.css

## Cambios Realizados
1. ELIMINADO: wp-content/themes/apus-theme/assets/css/theme.css (638 líneas)
2. COMENTADO: Enqueue de theme.css en inc/enqueue-scripts.php
3. ACTUALIZADAS: Dependencias animations/responsive/utilities → apus-bootstrap

## Impacto
- Antes: 638 líneas de código basura + 53+ sobrescrituras Bootstrap
- Después: 0 líneas - tema limpio sin conflictos
- Resuelve: Issue #125
- Previene: Futuros bugs como Issue #124

Ver reportes: _planeacion/_desarrollo-tema-apus/

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-07 14:15:30 -06:00
FrankZamora
143298fc09 CRÍTICO: Eliminar TODAS las reglas .btn de theme.css
PROBLEMA ROOT CAUSE FINAL:
theme.css tenía MÚLTIPLES reglas sobrescribiendo Bootstrap:
- .btn y button (background-color global)
- .btn:focus, button:focus (box-shadow)
- .btn:disabled, button:disabled (opacity)
- .btn-secondary, .btn-success, .btn-danger, etc. (colores)
- .btn-sm, .btn-lg (tamaños)

TODAS estas reglas sobrescribían btn-outline de Bootstrap

SOLUCIÓN DEFINITIVA:
- ELIMINADAS todas las reglas globales .btn y button
- ELIMINADAS todas las variantes .btn-*
- ELIMINADOS tamaños .btn-sm y .btn-lg
- Mantener SOLO estilos para inputs SIN clases btn
- Bootstrap maneja TODO lo relacionado con botones

Archivos modificados:
- assets/css/theme.css (eliminadas ~80 líneas de CSS)

RESULTADO:
Bootstrap btn-outline-* funciona SIN interferencia

Fixes #124

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-07 12:08:09 -06:00
FrankZamora
f3c2bbb3e7 Fix share buttons: Eliminar estilos globales .btn de theme.css
PROBLEMA ROOT CAUSE:
theme.css aplicaba background-color a TODOS los .btn (línea 335)
Esto sobrescribía btn-outline-* de Bootstrap

ANÁLISIS:
- Template original NO tiene theme.css
- theme.css es archivo adicional con reglas conflictivas
- Reglas globales .btn y button sobrescriben Bootstrap

SOLUCIÓN:
- Eliminar selectores button y .btn de theme.css
- Mantener SOLO estilos para inputs SIN clases Bootstrap
- Usar :not([class*="btn"]) para excluir elementos con clases btn

RESULTADO:
- Bootstrap maneja btn-outline correctamente
- Sin conflictos de especificidad CSS
- Inputs sin clases mantienen estilos por defecto

Archivo modificado:
- assets/css/theme.css (líneas 316-348)

Fixes #124

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-07 12:02:58 -06:00
FrankZamora
58f12fd4e6 Fix share buttons: Seguir documentación CSS-ESPECIFICO.md
PROBLEMA:
- social-share.css se estaba cargando con CSS adicional no documentado
- custom-style.css tenía reglas duplicadas
- Múltiples archivos CSS causaban conflictos

SOLUCIÓN:
- Deshabilitado enqueue de social-share.css en enqueue-scripts.php
- Eliminado CSS duplicado de custom-style.css
- Mantener SOLO las 2 reglas en style.css según documentación

Archivos modificados:
- inc/enqueue-scripts.php (deshabilitado líneas 398-416)
- assets/css/custom-style.css (eliminado líneas 659-666)

Según: theme-documentation/13-componente-share-buttons/CSS-ESPECIFICO.md
Solo debe haber 2 reglas CSS + Bootstrap outline classes

Fixes #124

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-07 11:50:45 -06:00
FrankZamora
485c10d635 Revert "Fix share buttons: Excluir btn-outline de estilos theme.css"
This reverts commit ce4f31b4b1.
2025-11-07 11:48:54 -06:00
FrankZamora
ce4f31b4b1 Fix share buttons: Excluir btn-outline de estilos theme.css
PROBLEMA:
- Los botones de compartir se mostraban con fondo azul sólido en lugar de outline
- theme.css aplicaba background-color: var(--primary-color) a TODOS los .btn

SOLUCIÓN:
- Modificar selector en theme.css para excluir botones con "outline" en clase
- Usar :not([class*="outline"]) para preservar estilos Bootstrap outline

Fixes #124

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-07 11:45:06 -06:00
FrankZamora
0c5712d51e [FIX] Share Buttons - Coincidir con template original - Issue #124
CORRECCIONES APLICADAS:

1. HTML (single.php):
   - Agregar botón de Email con btn-outline-secondary
   - Total: 6 botones (Facebook, Instagram, LinkedIn, WhatsApp, X, Email)
   - Remover comentarios HTML individuales para cada botón
   - Simplificar aria-label de X: "Compartir en X" (no "Compartir en X (Twitter)")

2. CSS (style.css):
   - Actualizar comentario para coincidir con template original
   - De: /* === SHARE BUTTONS === */
   - A: /* ======================================== SHARE BUTTONS ======================================== */

FUENTE DE VERDAD:
- apus-theme-template/index.html líneas 788-812
- apus-theme-template/css/style.css líneas 795-806

Archivos modificados:
- wp-content/themes/apus-theme/single.php (líneas 72-116)
- wp-content/themes/apus-theme/assets/css/style.css (líneas 1054-1065)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-07 10:59:05 -06:00
FrankZamora
bf5b344b01 [COMPONENTE 13] Implementar Share Buttons según documentación - Issue #124
CAMBIOS EN HTML (single.php):
- Remover botón de Email (no en documentación)
- Remover texto de botones (solo iconos)
- Agregar aria-label a todos los botones para accesibilidad
- Cambiar Instagram a onclick alert en vez de link directo
- Cambiar WhatsApp URL a api.whatsapp.com/send
- Actualizar rel de "noopener" a "noopener noreferrer"
- Agregar comentarios HTML para cada botón

CAMBIOS EN CSS (style.css):
- Agregar reglas específicas para .share-buttons .btn
- border-width: 2px (más grueso que Bootstrap default)
- transition: all 0.3s ease
- box-shadow en hover para efecto de elevación

Archivos modificados:
- wp-content/themes/apus-theme/single.php (líneas 72-120)
- wp-content/themes/apus-theme/assets/css/style.css (líneas 1054-1063)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-07 10:48:40 -06:00
FrankZamora
8c735d95e6 Fix: Poner HTML del CTA Box directamente en single.php
PROBLEMA:
- get_template_part no cargaba el archivo content-cta-box.php

SOLUCIÓN TEMPORAL:
- HTML del CTA Box colocado directamente en single.php
- Eliminado get_template_part para debugging

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-07 10:27:00 -06:00
FrankZamora
47bd34fa31 Debug: Agregar comentarios HTML para verificar carga del template CTA Box 2025-11-07 10:25:38 -06:00
FrankZamora
54ccf2ead4 Fix: Eliminar condición is_single() del CTA Box que impedía su renderizado
PROBLEMA:
- CTA Box no aparecía en el sidebar debajo del TOC
- El archivo content-cta-box.php tenía condición if (!is_single()) return
- Esta condición impedía el renderizado del CTA Box

SOLUCIÓN:
- Eliminada la condición is_single() del archivo
- El CTA Box ahora se renderiza correctamente
- Ya que se llama desde single.php, no necesita validación adicional

ARCHIVO MODIFICADO:
- template-parts/content-cta-box.php (eliminadas líneas 12-15)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-07 10:23:04 -06:00
FrankZamora
7f1f210693 [COMPONENTE 12] Implementar CTA Box Sidebar - Issue #123
NUEVO ARCHIVO:
- template-parts/content-cta-box.php (24 líneas)
  * Caja CTA naranja con título, texto y botón
  * Abre modal de contacto con data-bs-toggle
  * Solo se muestra en posts individuales

ARCHIVOS MODIFICADOS:
- single.php (línea 202)
  * Integrado CTA Box en sidebar después del TOC
  * Usa get_template_part('template-parts/content', 'cta-box')

- assets/css/style.css (+46 líneas, 1009-1052)
  * Comentario separador: /* === CTA BOX SIDEBAR === */
  * 5 selectores CSS principales:
    - .cta-box-sidebar (fondo naranja, height 250px, flexbox)
    - .cta-box-title (blanco, bold, 1.25rem)
    - .cta-box-text (blanco 95% opacidad, 0.9rem)
    - .btn-cta-box (fondo blanco, texto naranja)
    - .btn-cta-box:hover (fondo navy, texto blanco)

CARACTERÍSTICAS:
 Altura fija de 250px (crítica para cálculo TOC max-height)
 Contenido centrado verticalmente con flexbox
 Box shadow naranja para efecto "glow"
 Inversión de colores en hover (blanco→navy)
 Integración con Bootstrap modal nativo

🔗 Closes #123

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-07 10:04:41 -06:00
FrankZamora
c5ce5eb06d [COMPONENTE 11] Implementar Sidebar TOC con ScrollSpy custom - Issue #121
- CREAR: template-parts/content-toc.php
  * Función PHP apu_generate_toc() para generar TOC automáticamente
  * Regex para buscar H2 con atributo ID
  * Solo se muestra en is_single()

- MODIFICAR: single.php (sidebar)
  * Agregar div.sidebar-sticky wrapper
  * Integrar get_template_part('template-parts/content', 'toc')
  * Preparar espacio para CTA Box (componente 12)

- MODIFICAR: style.css (+87 líneas)
  * 9 selectores CSS + 4 pseudo-elementos scrollbar
  * Sticky positioning (top: 85px)
  * Max-height calculado con calc()
  * Scroll interno con overflow-y: auto
  * Min-height: 0 (crítico para scroll en flexbox)
  * Border-left indicator (navy, NO naranja)
  * Scrollbar personalizado 6px (solo Webkit)

- MODIFICAR: main.js (+66 líneas)
  * Función updateActiveSection() para ScrollSpy
  * Algoritmo SIMPLE: verifica si pasaste el top
  * Offset scroll: navbarHeight + 100
  * Smooth scroll: navbarHeight + 40
  * Selector .toc-container a (NO .toc-link)
  * NO tiene auto-scroll del TOC
  * NO actualiza URL con history.pushState()

Características:
 Generación automática desde H2 con ID
 ScrollSpy custom (JavaScript vanilla, NO Bootstrap)
 Sticky positioning con flexbox
 Scroll interno solo en lista
 Border-left indicator activo
 Scrollbar delgado personalizado

Selectores REALES usados:
- .toc-container a (NO .toc-link)
- .toc-container h4 (NO .toc-title)
- .toc-container li (NO .toc-list li)

🎨 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-07 09:55:56 -06:00
FrankZamora
f0d245de26 [COMPONENTE 10] Implementar Post Content con tipografía optimizada - Issue #120
- Cambiar <div> a <article> para mejor semántica HTML
- Agregar CSS completo con 9 selectores:
  * .post-content: Contenedor con fondo, padding, shadow
  * .post-content h2: Border-bottom naranja 3px
  * .post-content h3: Color navy light para jerarquía
  * .post-content p: Line-height 1.8 para legibilidad
  * .post-content ul/ol: Listas estilizadas
  * .post-content li: Items con espaciado
  * .post-content strong: Color navy para destacar
  * .post-content a: Enlaces naranjas con underline
  * .post-content a:hover: Hover naranja oscuro

Archivos modificados:
- wp-content/themes/apus-theme/single.php (líneas 61, 70)
- wp-content/themes/apus-theme/assets/css/style.css (líneas 865-921)

🎨 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-07 09:44:14 -06:00
FrankZamora
7e422d5499 Agregar plugin WP Debug para diagnóstico sistemático 2025-11-06 22:57:52 -06:00