Commit Graph

149 Commits

Author SHA1 Message Date
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
FrankZamora
9670659267 Forzar remoción de defer en main.js - Issue #110 FIX REAL
PROBLEMA RAÍZ IDENTIFICADO:
- WordPress 6.3+ agrega automáticamente defer a scripts en footer con dependencias
- wp_localize_script NO funciona con scripts diferidos
- apusTheme nunca se inyecta en HTML
- main.js usa ruta incorrecta para modal: fetch('modal-contact.html')
- WordPress devuelve página 404 completa
- Se inserta en modalContainer duplicando TODO el sitio

SOLUCIÓN:
1. Agregar filtro script_loader_tag con prioridad 20
2. Remover atributos defer y data-wp-strategy de apus-main-js
3. Esto permite que wp_localize_script inyecte apusTheme
4. main.js ahora puede usar apusTheme.themeUrl correctamente

ARCHIVOS:
- wp-content/themes/apus-theme/inc/enqueue-scripts.php:214-227 (nuevo filtro)
- wp-content/themes/apus-theme/inc/enqueue-scripts.php:197 (versión 1.0.3)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 22:51:44 -06:00
FrankZamora
93f55e8952 Quitar strategy defer para que wp_localize_script funcione - Issue #110
PROBLEMA:
- wp_localize_script no genera variable apusTheme en HTML
- WordPress no puede inyectar scripts inline cuando se usa strategy => 'defer'
- Resultado: JavaScript no tiene acceso a apusTheme.themeUrl
- fetch() usa ruta incorrecta y carga página 404 en modalContainer

SOLUCIÓN:
- Quitar strategy => 'defer' de wp_enqueue_script
- Usar solo 'true' (in_footer => true) como 5to parámetro
- Incrementar versión a 1.0.2 para cache busting
- Ahora wp_localize_script SÍ inyecta apusTheme correctamente

REFERENCIA:
- https://developer.wordpress.org/reference/functions/wp_localize_script/
- wp_localize_script requiere que script NO use defer/async

ARCHIVO:
- wp-content/themes/apus-theme/inc/enqueue-scripts.php:193-199

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 22:46:03 -06:00
FrankZamora
1facbfe2bb Agregar cache busting a main.js - Issue #110
PROBLEMA:
- Navegadores tienen main.js en caché con código viejo
- fetch('modal-contact.html') con ruta incorrecta sigue ejecutándose
- Página 404 se inserta en modalContainer duplicando todo el template

SOLUCIÓN:
- Cambiar versión de main.js de 1.0.0 a 1.0.1
- Fuerza recarga del JS con fix de modalUrl correcto

ARCHIVO:
- wp-content/themes/apus-theme/inc/enqueue-scripts.php:197

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 22:42:32 -06:00
FrankZamora
bda6fa9ee8 Corregir footer duplicado - Issue #110
PROBLEMA:
- Footer se renderizaba duplicado con página 404 entre las duplicaciones
- main.js cargaba 'modal-contact.html' con ruta relativa incorrecta
- fetch('modal-contact.html') resolvía a URL base en vez de directorio del tema
- WordPress devolvía página 404 completa que se insertaba en #modalContainer

SOLUCIÓN:
1. Agregar wp_localize_script en enqueue-scripts.php para pasar themeUrl a JS
2. Corregir main.js para usar apusTheme.themeUrl + '/modal-contact.html'
3. Agregar fallback a '/wp-content/themes/apus-theme/modal-contact.html'

ARCHIVOS:
- wp-content/themes/apus-theme/inc/enqueue-scripts.php:204-212
- wp-content/themes/apus-theme/assets/js/main.js:59-62

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 22:37:21 -06:00
FrankZamora
0779cd144c Vaciar hero.css y badges.css - Estilos duplicados NO están en template original - Issue #105
PROBLEMA:
- hero.css y badges.css tenían estilos de .category-badge-hero que NO existen en template
- Estos archivos sobrescribían los estilos correctos de style.css
- Template original SOLO tiene .category-badge en style.css, NO tiene clase -hero

ARCHIVOS AFECTADOS:

1. badges.css - VACIADO COMPLETO:
   - Eliminado .category-badge (líneas 15-38) - duplicado, NO en template
   - Eliminado .category-badge-hero (líneas 41-56) - NO existe en template
   - Eliminado responsive (líneas 59-68) - duplicado
   - Total: 58 líneas eliminadas

2. hero.css - VACIADO COMPLETO:
   - Eliminado .category-badge-hero (líneas 16-31) - NO existe en template
   - Eliminado hover (líneas 33-38) - NO en template
   - Eliminado i (líneas 40-42) - NO en template
   - Eliminado responsive (líneas 45-50) - NO en template
   - Total: 40 líneas eliminadas

ESTILOS CORRECTOS:
Todos los estilos del hero section y badges están en style.css líneas 812-848
según template original apus-theme-template/css/style.css líneas 186-222

TEMPLATE ORIGINAL SOLO TIENE:
- .hero-title
- .hero-title h1
- .category-badge
- .category-badge:hover
- .category-badge i

NO TIENE clase .category-badge-hero específica.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 22:03:51 -06:00
FrankZamora
c5723925d3 Eliminar QUINTA duplicación de .hero-title en hero-section.css - Issue #108
PROBLEMA CRÍTICO ENCONTRADO:
El archivo hero-section.css (Issue #40, prioridad 20) tenía OTRA definición
de .hero-title con margin: 1rem 0; que causaba 16px de espacio entre navbar y hero.

Como se cargaba DESPUÉS de style.css (prioridad 5), sobrescribía los estilos
y agregaba el margin no deseado.

CAMBIOS:
- Eliminado .hero-title completo (líneas 30-37) incluyendo margin: 1rem 0
- Eliminado .hero-title del @media responsive (líneas 57-59)
- Mantenido solo .hero-meta, .hero-category-badge, etc.

RESUMEN DE DUPLICACIONES ELIMINADAS:
1. hero.css - .hero-title eliminado ✓
2. custom-style.css - .hero-title eliminado ✓
3. hero-section.css - .hero-title eliminado ✓

AHORA .hero-title solo existe UNA VEZ en style.css como debe ser.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 21:56:14 -06:00