/* =========================================
   CHECKTOBUILD - UNIFIED COMPONENTS v1.0
   ========================================= 
   
   All component CSS unified for optimal performance.
   Source files maintained in components/ folder.
   
   ARCHITECTURE:
   - Critical components first (buttons, hero, stats)
   - Common components second (accordion, cards, grids)
   - Specialized components last (3D viewer, calculators)
   
   Created: 2025-11-28 11:17:40
   @package CheckToBuild
   @version 2.0.0
   ========================================= */


/* =========================================
   buttons-unified.css
   Lines: 598
   ========================================= */

/**
 * CheckToBuild - Sistema Unificado de Botones v2.0
 * Diseño coherente inspirado en Vercel/Stripe
 * 
 * ARQUITECTURA:
 * - 4 variantes base (primary, secondary, outline, ghost)
 * - Contextos especiales (cards, hero, features)
 * - Modificadores de tamaño (sm, md, lg)
 * - Estados (hover, active, disabled, loading)
 * 
 * @package CheckToBuild
 * @since 2.0.0
 */

/* ===================================
   VARIABLES CSS - DESIGN TOKENS
   =================================== */
:root {
    /* Colores de botones */
    --btn-primary-bg: #1561B2;
    --btn-primary-bg-hover: #1148A1;
    --btn-primary-text: #FFFFFF;
    
    --btn-secondary-bg: transparent;
    --btn-secondary-border: #1561B2;
    --btn-secondary-text: #1561B2;
    --btn-secondary-bg-hover: #1561B2;
    --btn-secondary-text-hover: #FFFFFF;
    
    /* Tamaños */
    --btn-padding-sm: 0.5rem 1rem;
    --btn-padding-md: 0.75rem 1.5rem;
    --btn-padding-lg: 1rem 2rem;
    
    --btn-font-size-sm: 0.875rem;
    --btn-font-size-md: 1rem;
    --btn-font-size-lg: 1.125rem;
    
    --btn-border-radius: 8px;
    --btn-font-weight: 600;
    
    /* Transiciones */
    --btn-transition: all 0.2s ease;
}

/* ===================================
   BASE - ESTILOS COMPARTIDOS
   =================================== */
.btn,
button.btn {
    /* Reset */
    appearance: none;
    -webkit-appearance: none;
    border: none;
    background: none;
    
    /* Layout */
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    
    /* Espaciado */
    padding: var(--btn-padding-md);
    
    /* Tipografía */
    font-family: inherit;
    font-size: var(--btn-font-size-md);
    font-weight: var(--btn-font-weight);
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    letter-spacing: 0;
    
    /* Estilo */
    border-radius: var(--btn-border-radius);
    cursor: pointer;
    transition: var(--btn-transition);
    
    /* Accesibilidad */
    outline: none;
    white-space: nowrap;
}

.btn:focus-visible {
    outline: 2px solid var(--btn-primary-bg);
    outline-offset: 2px;
}

/* ===================================
   VARIANTE 1: PRIMARY (Acción Principal)
   Uso: CTAs principales, enviar formularios
   =================================== */
.btn-primary,
.btn.btn-primary {
    background: var(--btn-primary-bg);
    color: var(--btn-primary-text);
    border: 2px solid var(--btn-primary-bg);
    padding: 10px 25px;
    border-radius: 8px;
}

.btn-primary:hover,
.btn.btn-primary:hover {
    background: var(--btn-primary-bg-hover);
    border-color: var(--btn-primary-bg-hover);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(21, 97, 178, 0.3);
}

.btn-primary:active,
.btn.btn-primary:active {
    transform: translateY(0);
    box-shadow: 0 2px 6px rgba(21, 97, 178, 0.2);
}

/* ===================================
   VARIANTE 2: SECONDARY (Acción Secundaria)
   Uso: Acciones alternativas, "Leer más"
   =================================== */
.btn-secondary,
.btn.btn-secondary {
    background: var(--btn-secondary-bg);
    color: var(--btn-secondary-text);
    border: 2px solid var(--btn-secondary-border);
}

.btn-secondary:hover,
.btn.btn-secondary:hover {
    background: var(--btn-secondary-bg-hover);
    color: var(--btn-secondary-text-hover);
    border-color: var(--btn-secondary-bg-hover);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(21, 97, 178, 0.2);
}

.btn-secondary:active,
.btn.btn-secondary:active {
    transform: translateY(0);
}

/* ===================================
   VARIANTE 3: OUTLINE (Acción Terciaria)
   Uso: Acciones menos importantes, cancelar
   =================================== */
.btn-outline,
.btn.btn-outline {
    background: transparent;
    color: var(--btn-primary-bg);
    border: 2px solid var(--btn-primary-bg);
}

.btn-outline:hover,
.btn.btn-outline:hover {
    background: var(--btn-primary-bg);
    color: #FFFFFF;
    border-color: var(--btn-primary-bg);
}

/* Variante outline blanco (para fondos oscuros) */
.btn-outline-white,
.btn.btn-outline-white {
    background: transparent;
    color: #FFFFFF;
    border: 2px solid #FFFFFF;
}

.btn-outline-white:hover,
.btn.btn-outline-white:hover {
    background: #FFFFFF;
    color: var(--btn-primary-bg);
    border-color: #FFFFFF;
}

/* ===================================
   VARIANTE 4: GHOST (Acción Sutil)
   Uso: Links, navegación, acciones no críticas
   =================================== */
.btn-ghost,
.btn.btn-ghost {
    background: transparent;
    color: var(--btn-primary-bg);
    border: 2px solid transparent;
    padding: 0.5rem 1rem;
}

.btn-ghost:hover,
.btn.btn-ghost:hover {
    background: rgba(21, 97, 178, 0.1);
    color: var(--btn-primary-bg-hover);
}

/* ===================================
   MODIFICADORES DE TAMAÑO
   =================================== */
.btn-sm,
.btn.btn-sm {
    padding: var(--btn-padding-sm);
    font-size: var(--btn-font-size-sm);
}

.btn-lg,
.btn.btn-lg,
.btn.btn-large {
    padding: var(--btn-padding-lg);
    font-size: var(--btn-font-size-lg);
}

/* ===================================
   MODIFICADORES DE ANCHO
   =================================== */
.btn-block,
.btn-full {
    width: 100%;
    display: flex;
}

/* ===================================
   CONTEXTO: BOTONES EN CARDS
   Mantiene diseño específico para cards
   =================================== */

/* Botón base para cards */
.btn-solution {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.5rem;
    border-radius: var(--btn-border-radius);
    text-decoration: none;
    font-weight: 600;
    transition: var(--btn-transition);
    border: 2px solid transparent;
    font-size: 0.875rem;
    text-transform: none;
    letter-spacing: 0;
    line-height: 1.2;
}

/* Botón en card con fondo azul/oscuro */
.solution-card-primary .btn-solution {
    background: rgba(255, 255, 255, 0.2);
    color: #FFFFFF;
    border-color: rgba(255, 255, 255, 0.3);
}

.solution-card-primary .btn-solution:hover {
    background: rgba(255, 255, 255, 0.3);
    border-color: rgba(255, 255, 255, 0.5);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

/* Botón en card con fondo blanco/claro */
.solution-card-secondary .btn-solution {
    background: transparent;
    color: var(--btn-primary-bg);
    border-color: var(--btn-primary-bg);
}

.solution-card-secondary .btn-solution:hover {
    background: var(--btn-primary-bg);
    color: #FFFFFF;
    border-color: var(--btn-primary-bg);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(21, 97, 178, 0.2);
}

/* ===================================
   CONTEXTO: BOTONES EN HERO/FEATURES
   Mantiene diseño específico para secciones hero
   =================================== */

/* Botón primario de hero/features */
.btn-feature-primary,
.btn-hero-primary {
    background: #0066cc;
    color: #FFFFFF;
    padding: 1rem 2rem;
    border: 2px solid #0066cc;
    border-radius: 8px;
    font-weight: 600;
    cursor: pointer;
    transition: var(--btn-transition);
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    text-decoration: none;
}

.btn-feature-primary:hover,
.btn-hero-primary:hover {
    background: #0052a3;
    border-color: #0052a3;
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(0, 102, 204, 0.3);
}

.btn-feature-primary:active,
.btn-hero-primary:active {
    transform: translateY(0);
    box-shadow: 0 4px 12px rgba(0, 102, 204, 0.2);
}

/* Botón outline de hero/features (para fondos oscuros) */
.btn-feature-outline,
.btn-hero-outline {
    background: transparent;
    color: #FFFFFF;
    padding: 1rem 2rem;
    border: 2px solid #FFFFFF;
    border-radius: 8px;
    font-weight: 600;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    transition: var(--btn-transition);
}

.btn-feature-outline:hover,
.btn-hero-outline:hover {
    background: rgba(255, 255, 255, 0.15);
    border-color: #FFFFFF;
    transform: translateY(-2px);
}

/* ===================================
   CONTEXTO: BOTONES DE NAVEGACIÓN
   Para tabs, filtros, categorías
   =================================== */
.btn-nav,
.category-btn,
.tab-btn,
.filter-btn {
    background: transparent;
    color: #64748B;
    padding: 0.5rem 1rem;
    border: 2px solid transparent;
    border-radius: 6px;
    font-weight: 500;
    font-size: 0.875rem;
    transition: var(--btn-transition);
}

.btn-nav:hover,
.category-btn:hover,
.tab-btn:hover,
.filter-btn:hover {
    background: rgba(21, 97, 178, 0.1);
    color: var(--btn-primary-bg);
}

.btn-nav.active,
.category-btn.active,
.tab-btn.active,
.filter-btn.active {
    background: var(--btn-primary-bg);
    color: #FFFFFF;
    border-color: var(--btn-primary-bg);
}

/* ===================================
   ESTADOS ESPECIALES
   =================================== */

/* Disabled */
.btn:disabled,
.btn.disabled,
.btn[disabled] {
    opacity: 0.5;
    cursor: not-allowed;
    pointer-events: none;
}

/* Loading */
.btn-loading {
    position: relative;
    color: transparent !important;
    pointer-events: none;
}

.btn-loading::after {
    content: "";
    position: absolute;
    width: 16px;
    height: 16px;
    top: 50%;
    left: 50%;
    margin-left: -8px;
    margin-top: -8px;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: btn-spin 0.6s linear infinite;
}

@keyframes btn-spin {
    to { transform: rotate(360deg); }
}

/* ===================================
   GRUPOS DE BOTONES
   =================================== */
.btn-group {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.btn-group-vertical {
    flex-direction: column;
}

/* ===================================
   BOTONES CON ICONOS
   =================================== */
.btn-icon {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.btn-icon i,
.btn-icon svg {
    font-size: 1.125em;
}

.btn-icon-only {
    padding: 0.75rem;
    aspect-ratio: 1;
}

/* ===================================
   MIGRACIÓN - ALIASES LEGACY
   Mantener compatibilidad temporal
   =================================== */

/* CTA buttons (mapear a primary) */
.btn-cta,
.btn-cta-primary {
    background: var(--btn-primary-bg);
    color: var(--btn-primary-text);
    padding: 1rem 2rem;
    border: 2px solid var(--btn-primary-bg);
    border-radius: 8px;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    text-decoration: none;
    transition: var(--btn-transition);
}

.btn-cta:hover,
.btn-cta-primary:hover {
    background: var(--btn-primary-bg-hover);
    border-color: var(--btn-primary-bg-hover);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(21, 97, 178, 0.3);
}

/* Feature CTA (mapear a hero) */
.btn-feature-cta {
    background: #0066cc;
    color: #FFFFFF;
    padding: 1rem 2rem;
    border: 2px solid #0066cc;
    border-radius: 8px;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    text-decoration: none;
    transition: var(--btn-transition);
}

.btn-feature-cta:hover {
    background: #0052a3;
    border-color: #0052a3;
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(0, 102, 204, 0.3);
}

.btn-feature-cta-outline {
    background: transparent;
    color: #FFFFFF;
    padding: 1rem 2rem;
    border: 2px solid #FFFFFF;
    border-radius: 8px;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    text-decoration: none;
    transition: var(--btn-transition);
}

.btn-feature-cta-outline:hover {
    background: rgba(255, 255, 255, 0.15);
}

/* White button variant */
.btn-white {
    background: #FFFFFF;
    color: var(--btn-primary-bg);
    border: 2px solid #FFFFFF;
}

.btn-white:hover {
    background: rgba(255, 255, 255, 0.9);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(255, 255, 255, 0.3);
}

/* Pricing buttons */
.btn-pricing {
    background: var(--btn-primary-bg);
    color: #FFFFFF;
    padding: 0.75rem 1.5rem;
    border: 2px solid var(--btn-primary-bg);
    border-radius: 8px;
    font-weight: 600;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: var(--btn-transition);
    width: 100%;
}

.btn-pricing:hover {
    background: var(--btn-primary-bg-hover);
    border-color: var(--btn-primary-bg-hover);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(21, 97, 178, 0.3);
}

/* Download button */
.btn-download,
.download-btn {
    background: #10B981;
    color: #FFFFFF;
    padding: 0.75rem 1.5rem;
    border: 2px solid #10B981;
    border-radius: 8px;
    font-weight: 600;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    transition: var(--btn-transition);
}

.btn-download:hover,
.download-btn:hover {
    background: #059669;
    border-color: #059669;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(16, 185, 129, 0.3);
}

/* ===================================
   RESPONSIVE
   =================================== */
@media (max-width: 768px) {
    .btn,
    .btn-md {
        padding: 0.625rem 1.25rem;
        font-size: 0.9375rem;
    }
    
    .btn-lg,
    .btn.btn-large {
        padding: 0.875rem 1.75rem;
        font-size: 1rem;
    }
    
    .btn-group {
        flex-direction: column;
        width: 100%;
    }
    
    .btn-group .btn {
        width: 100%;
    }
}

/* ===================================
   ACCESIBILIDAD - MOTION REDUCED
   =================================== */
@media (prefers-reduced-motion: reduce) {
    .btn,
    .btn * {
        animation: none !important;
        transition: none !important;
    }
}



/* =========================================
   hero.css
   Lines: 419
   ========================================= */

/**
 * CheckToBuild - Hero System
 * Hero sections base + modificadores para features
 * 
 * @package CheckToBuild
 * @since 2.0.0
 */

/* ===========================
   HERO BASE
   =========================== */

.landing-hero-section,
.hero-section {
    background: var(--primary);
    color: var(--white);
    padding: var(--space-16) 0 var(--space-12);
    position: relative;
    overflow: hidden;
}

/* Hero con video background */
.hero-video-wrapper {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    overflow: hidden;
}

.hero-video {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, rgba(0, 74, 173, 0.9) 0%, rgba(21, 97, 178, 0.85) 100%);
    z-index: 1;
}

/* ===========================
   HERO CONTENT
   =========================== */

.hero-content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-12);
    align-items: center;
    
    padding: var(--space-12) 0 var(--space-16);
    position: relative;
    z-index: 2;
}

/* Hero content centrado (sin visual) */
.hero-content-centered {
    grid-template-columns: 1fr;
    text-align: center;
    max-width: 900px;
    margin: 0 auto;
}

/* ===========================
   HERO TEXT
   =========================== */

.hero-text {
    text-align: left;
}

.hero-content-centered .hero-text {
    text-align: center;
}

/* Hero badge */
.hero-badge {
    display: inline-block;
    background: rgba(255, 255, 255, 0.1);
    padding: var(--space-2) var(--space-4);
    border-radius: var(--border-radius-pill);
    margin-bottom: var(--space-6);
}

.hero-badge span {
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-bold);
    letter-spacing: var(--letter-spacing-widest);
    text-transform: uppercase;
    color: var(--white);
}

/* Hero title */
.landing-hero-section h1,
.hero-section h1 {
    font-size: clamp(1.75rem, 4vw, 2.5rem);
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-tight);
    margin-bottom: var(--space-5);
    color: var(--white);
}

/* Hero subtitle */
.hero-subtitle {
    font-size: clamp(1rem, 2vw, 1.15rem);
    line-height: var(--line-height-relaxed);
    opacity: 0.9;
    margin-bottom: var(--space-8);
    max-width: 600px;
    color: var(--white);
}

.hero-content-centered .hero-subtitle {
    margin-left: auto;
    margin-right: auto;
}

/* Hero title (alternative to h1) */
.hero-title {
    font-size: clamp(2rem, 5vw, 4rem);
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-tight);
    margin-bottom: var(--space-4);
    color: var(--white);
}

/* Hero CTA container */
.hero-cta {
    display: flex;
    gap: var(--space-4);
    flex-wrap: wrap;
    margin-top: var(--space-6);
}

.hero-content-centered .hero-cta {
    justify-content: center;
}

/* ===========================
   HERO VISUAL
   =========================== */

.hero-visual {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

.hero-visual img {
    width: 100%;
    height: auto;
    border-radius: var(--border-radius-lg);
    box-shadow: var(--shadow-xl);
}

/* Floating cards en hero visual */
.floating-cards {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}

.float-card {
    position: absolute;
    background: var(--white);
    padding: var(--space-3) var(--space-4);
    border-radius: var(--border-radius-md);
    box-shadow: var(--shadow-lg);
    display: flex;
    align-items: center;
    gap: var(--space-2);
    animation: float 3s ease-in-out infinite;
}

.float-card .icon {
    font-size: var(--font-size-2xl);
}

.float-card span:not(.icon) {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--text-dark);
}

/* Posiciones floating cards */
.float-card.card-1 {
    top: 10%;
    right: 10%;
    animation-delay: 0s;
}

.float-card.card-2 {
    top: 50%;
    right: 5%;
    animation-delay: 1s;
}

.float-card.card-3 {
    bottom: 15%;
    right: 15%;
    animation-delay: 2s;
}

@keyframes float {
    0%, 100% {
        transform: translateY(0px);
    }
    50% {
        transform: translateY(-10px);
    }
}

/* ===========================
   HERO STATS
   =========================== */

.hero-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-4);
    margin-top: var(--space-6);
}

.stat-item {
    background: rgba(255, 255, 255, 0.1);
    padding: var(--space-3);
    border-radius: var(--border-radius-md);
    backdrop-filter: blur(10px);
}

.stat-item strong {
    display: block;
    font-size: var(--font-size-2xl);
    font-weight: var(--font-weight-bold);
    color: var(--white);
    margin-bottom: var(--space-1);
    line-height: 1;
}

.stat-item span {
    font-size: var(--font-size-xs);
    opacity: 0.85;
    text-transform: uppercase;
    letter-spacing: var(--letter-spacing-wide);
    line-height: 1.3;
    display: block;
}

/* ===========================
   HERO VARIANTS
   =========================== */

/* Hero con gradient dark */
.hero-section.hero-dark {
    background: var(--gradient-dark);
}

/* Hero con imagen de fondo */
.hero-section.hero-image {
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.hero-section.hero-image::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 74, 173, 0.85);
    z-index: 1;
}

.hero-section.hero-image > * {
    position: relative;
    z-index: 2;
}

/* Hero compacto */
.hero-section.hero-compact {
    padding: var(--space-12) 0 var(--space-8);
}

.hero-section.hero-compact .hero-content {
    min-height: 350px;
    padding: var(--space-8) 0;
}

/* ===========================
   RESPONSIVE HERO
   =========================== */

/* Tablet (992px) */
@media (max-width: 992px) {

    .image-guide-desktop {
    display: none;
    }

    .hero-content {
        grid-template-columns: 1fr;
        gap: var(--space-8);
        padding: var(--space-8) 0 var(--space-12);
    }
    
    .hero-text {
        text-align: center;
    }
    
    .hero-subtitle {
        margin-left: auto;
        margin-right: auto;
    }
    
    .hero-stats {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--space-3);
    }
}

/* Mobile (768px) */
@media (max-width: 768px) {
    .landing-hero-section,
    .hero-section {
        padding: var(--space-12) 0 var(--space-8);
    }
    
    .hero-content {
        min-height: auto;
        padding: var(--space-6) 0 var(--space-8);
        gap: var(--space-6);
    }
    
    .landing-hero-section h1,
    .hero-section h1 {
        font-size: clamp(1.5rem, 6vw, 2rem);
        margin-bottom: var(--space-4);
    }
    
    .hero-subtitle {
        font-size: var(--font-size-base);
        margin-bottom: var(--space-6);
    }
    
    .hero-badge {
        margin-bottom: var(--space-4);
    }
    
    .hero-stats {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--space-2);
    }
    
    .stat-item {
        padding: var(--space-2);
    }
    
    .stat-item strong {
        font-size: var(--font-size-xl);
    }
    
    .stat-item span {
        font-size: 0.65rem;
    }
    
    /* Hide floating cards en mobile */
    .floating-cards {
        display: none;
    }
    
    .hero-section.hero-compact {
        padding: var(--space-8) 0 var(--space-6);
    }
}

/* Small Mobile (480px) */
@media (max-width: 480px) {
    .landing-hero-section,
    .hero-section {
        padding: var(--space-10) 0 var(--space-6);
    }
    
    .hero-content {
        padding: var(--space-4) 0 var(--space-6);
    }
    
    .landing-hero-section h1,
    .hero-section h1 {
        font-size: clamp(1.25rem, 8vw, 1.75rem);
    }
    
    .hero-stats {
        grid-template-columns: 1fr 1fr;
    }
}

/* ===========================
   ANIMATIONS
   =========================== */

@media (prefers-reduced-motion: reduce) {
    .float-card {
        animation: none !important;
    }
}



/* =========================================
   stats.css
   Lines: 439
   ========================================= */

/**
 * CheckToBuild - Stats System
 * Componentes de estadísticas y métricas
 * 
 * @package CheckToBuild
 * @since 2.0.0
 */

/* ===========================
   STATS GRID
   =========================== */

.stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: var(--space-6);
}

/* ===========================
   STAT ITEM (UNIFIED - simplificado para hero)
   =========================== */

.stat-item {
    text-align: center;
    padding: var(--space-3);
}

.stat-item:hover {
    opacity: 0.9;
}

.stat-item strong {
    display: block;
    font-size: clamp(1.75rem, 3vw, 2.5rem);
    font-weight: var(--font-weight-bold);
    color: var(--text-dark);
    line-height: 1.2;
    margin-bottom: var(--space-1);
}

.stat-item span {
    display: block;
    font-size: var(--font-size-sm);
    color: var(--text-medium);
    text-transform: uppercase;
    letter-spacing: var(--letter-spacing-wide);
}

/* ===========================
   STAT LABEL & VALUE (UNIFIED - para listas/tablas)
   =========================== */

.stat-label {
    font-size: var(--font-size-sm);
    color: var(--text-medium);
    font-weight: var(--font-weight-medium);
    margin-bottom: var(--space-1);
}

.stat-value {
    font-size: var(--font-size-2xl);
    font-weight: var(--font-weight-bold);
    color: var(--text-dark);
    line-height: 1.2;
}

.stat-value.success { color: var(--success); }
.stat-value.warning { color: var(--warning); }
.stat-value.error { color: var(--error); }

/* ===========================
   METRIC ROW (UNIFIED - para tablas de métricas)
   =========================== */

.metric-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--space-3) 0;
    border-bottom: 1px solid var(--border-light);
}

.metric-row:last-child {
    border-bottom: none;
}

.metric-label {
    font-size: var(--font-size-base);
    color: var(--text-medium);
    font-weight: var(--font-weight-medium);
}

.metric-value {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-semibold);
    color: var(--text-dark);
}

.metric-value.success { color: var(--success); }
.metric-value.warning { color: var(--warning); }
.metric-value.error { color: var(--error); }

/* ===========================
   STAT CARD
   =========================== */

.stat-card {
    background: var(--bg-white);
    padding: var(--space-6);
    border-radius: var(--border-radius-lg);
    box-shadow: var(--shadow-card);
    text-align: center;
    transition: all var(--transition-base);
}

.stat-card:hover {
    box-shadow: var(--shadow-card-hover);
    transform: translateY(-4px);
}

.stat-card-value {
    font-size: var(--font-size-4xl);
    font-weight: var(--font-weight-bold);
    color: var(--primary);
    line-height: 1;
    margin-bottom: var(--space-2);
}

.stat-card-label {
    font-size: var(--font-size-sm);
    color: var(--text-medium);
    text-transform: uppercase;
    letter-spacing: var(--letter-spacing-wide);
    font-weight: var(--font-weight-medium);
}

.stat-card-description {
    font-size: var(--font-size-sm);
    color: var(--text-light);
    margin-top: var(--space-2);
    line-height: var(--line-height-relaxed);
}

/* ===========================
   STAT CARD CON ICONO
   =========================== */

.stat-card-icon {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-3);
}

.stat-card-icon .icon {
    width: 64px;
    height: 64px;
    background: var(--accent);
    border-radius: var(--border-radius-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--font-size-3xl);
    color: var(--primary);
}

/* ===========================
   STAT INLINE
   =========================== */

.stat-inline {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-4);
    background: var(--bg-light);
    border-radius: var(--border-radius-md);
}

.stat-inline-icon {
    width: 48px;
    height: 48px;
    background: var(--primary);
    border-radius: var(--border-radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--white);
    font-size: var(--font-size-xl);
    flex-shrink: 0;
}

.stat-inline-content {
    flex: 1;
}

.stat-inline-value {
    font-size: var(--font-size-2xl);
    font-weight: var(--font-weight-bold);
    color: var(--text-dark);
    line-height: 1;
    margin-bottom: var(--space-1);
}

.stat-inline-label {
    font-size: var(--font-size-sm);
    color: var(--text-medium);
}

/* ===========================
   METRIC CARD (con progreso)
   =========================== */

.metric-card {
    background: var(--bg-white);
    padding: var(--space-5);
    border-radius: var(--border-radius-lg);
    
    box-shadow: var(--shadow-sm);
}

.metric-card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--space-3);
}

.metric-card-title {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--text-medium);
    text-transform: uppercase;
    letter-spacing: var(--letter-spacing-wide);
}

.metric-card-value {
    font-size: var(--font-size-3xl);
    font-weight: var(--font-weight-bold);
    color: var(--text-dark);
    line-height: 1;
}

.metric-card-trend {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-semibold);
    margin-top: var(--space-2);
}

.metric-card-trend.positive {
    color: var(--success);
}

.metric-card-trend.negative {
    color: var(--error);
}

/* ===========================
   KPI DISPLAY
   =========================== */

.kpi-display {
    text-align: center;
    padding: var(--space-6);
}

.kpi-value {
    font-size: clamp(2.5rem, 5vw, 4rem);
    font-weight: var(--font-weight-extrabold);
    background: var(--gradient-primary);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    line-height: 1;
    margin-bottom: var(--space-2);
}

.kpi-label {
    font-size: var(--font-size-lg);
    color: var(--text-medium);
    font-weight: var(--font-weight-medium);
}

/* ===========================
   STATS COLORS
   =========================== */

.stat-card.stat-primary .stat-card-value {
    color: var(--primary);
}

.stat-card.stat-success .stat-card-value {
    color: var(--success);
}

.stat-card.stat-warning .stat-card-value {
    color: var(--warning);
}

.stat-card.stat-error .stat-card-value {
    color: var(--error);
}

/* Metric card colors */
.metric-card.metric-primary {
    border-left-color: var(--primary);
}

.metric-card.metric-success {
    border-left-color: var(--success);
}

.metric-card.metric-warning {
    border-left-color: var(--warning);
}

.metric-card.metric-error {
    border-left-color: var(--error);
}

/* ===========================
   RESPONSIVE STATS
   =========================== */

@media (max-width: 992px) {
    .stats-grid {
        grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
        gap: var(--space-4);
    }
}

@media (max-width: 768px) {
    .stats-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--space-3);
    }
    
    .stat-card {
        padding: var(--space-4);
    }
    
    .stat-card-value {
        font-size: var(--font-size-3xl);
    }
    
    .metric-card {
        padding: var(--space-4);
    }
    
    .metric-card-value {
        font-size: var(--font-size-2xl);
    }
    
    .kpi-value {
        font-size: clamp(2rem, 8vw, 3rem);
    }
}

@media (max-width: 480px) {
    .stats-grid {
        grid-template-columns: 1fr;
    }
    
    .stat-inline {
        flex-direction: column;
        text-align: center;
    }
}

/* ===========================
   ANIMATIONS
   =========================== */

@keyframes stat-count-up {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.stat-card-value,
.metric-card-value,
.kpi-value {
    animation: stat-count-up 0.5s ease-out;
}

@media (prefers-reduced-motion: reduce) {
    .stat-card-value,
    .metric-card-value,
    .kpi-value {
        animation: none;
    }
    
    .stat-card:hover {
        transform: none;
    }
}

/* ===========================
   ADDITIONAL STAT VARIANTS
   =========================== */

/* stat-number - Usado en pricing y otras páginas */
.stat-number {
    display: block;
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 700;
    color: var(--text-dark);
    line-height: 1.2;
    margin-bottom: var(--space-2);
}

/* uc-stat-label - Usado en use cases */
.uc-stat-label {
    display: block;
    font-size: var(--font-size-sm);
    color: var(--text-medium);
    text-transform: uppercase;
    letter-spacing: var(--letter-spacing-wide);
    font-weight: var(--font-weight-medium);
}

/* feature-stat-label - Usado en solution pages */
.feature-stat-label {
    display: block;
    font-size: var(--font-size-sm);
    color: var(--text-medium);
    text-transform: uppercase;
    letter-spacing: var(--letter-spacing-wide);
    font-weight: var(--font-weight-medium);
}




/* =========================================
   forms.css
   Lines: 322
   ========================================= */

/**
 * Componente: Formularios
 * Estilos para todos los formularios del sitio
 */

/* Estilos base para formularios */
.form-group {
    margin-bottom: 1.5rem;
}

.form-label {
    display: block;
    margin-bottom: 0.5rem;
    font-weight: 500;
    color: var(--text-color);
}

.form-label.required::after {
    content: ' *';
    color: #dc3545;
}

/* Campos de entrada */
.form-control {
    width: 100%;
    padding: 12px 16px;
    border: 2px solid var(--border-color);
    border-radius: var(--border-radius);
    font-size: 1rem;
    transition: var(--transition);
    background: white;
    color: var(--text-color);
}

.form-control:focus {
    outline: none;
    border-color: var(--primary-color);
    box-shadow: 0 0 0 3px rgba(0, 124, 186, 0.1);
}

.form-control::placeholder {
    color: var(--text-light);
}

/* Textarea */
textarea.form-control {
    resize: vertical;
    min-height: 120px;
}

/* Select */
select.form-control {
    cursor: pointer;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");
    background-position: right 12px center;
    background-repeat: no-repeat;
    background-size: 16px;
    padding-right: 40px;
    appearance: none;
}

/* Checkbox y Radio */
.form-check {
    display: flex;
    align-items: center;
    margin-bottom: 1rem;
}

.form-check-input {
    width: 18px;
    height: 18px;
    margin-right: 10px;
    cursor: pointer;
}

.form-check-label {
    cursor: pointer;
    margin-bottom: 0;
    font-weight: normal;
}

/* Input file personalizado */
.file-input-wrapper {
    position: relative;
    display: inline-block;
    cursor: pointer;
    width: 100%;
}

.file-input {
    position: absolute;
    opacity: 0;
    width: 100%;
    height: 100%;
    cursor: pointer;
}

.file-input-label {
    display: block;
    padding: 12px 16px;
    border: 2px dashed var(--border-color);
    border-radius: var(--border-radius);
    text-align: center;
    transition: var(--transition);
    background: var(--bg-light);
}

.file-input-label:hover,
.file-input:focus + .file-input-label {
    border-color: var(--primary-color);
    background: rgba(0, 124, 186, 0.05);
}

/* Estados de validación */
.form-control.is-valid {
    border-color: #28a745;
}

.form-control.is-invalid {
    border-color: #dc3545;
}

.valid-feedback {
    display: block;
    margin-top: 0.25rem;
    font-size: 0.875rem;
    color: #28a745;
}

.invalid-feedback {
    display: block;
    margin-top: 0.25rem;
    font-size: 0.875rem;
    color: #dc3545;
}

/* Formulario en línea */
.form-inline {
    display: flex;
    align-items: end;
    gap: 1rem;
    flex-wrap: wrap;
}

.form-inline .form-group {
    margin-bottom: 0;
    flex: 1;
    min-width: 200px;
}

/* Formulario de búsqueda */
.search-form {
    position: relative;
    max-width: 400px;
}

.search-input {
    padding-right: 50px;
}

.search-btn {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    color: var(--text-light);
    cursor: pointer;
    padding: 8px;
    border-radius: 4px;
    transition: var(--transition);
}

.search-btn:hover {
    color: var(--primary-color);
    background: rgba(0, 124, 186, 0.1);
}

/* Formulario de contacto */
.contact-form {
    background: white;
    padding: 40px;
    border-radius: var(--border-radius);
    box-shadow: var(--shadow);
}

.contact-form .form-row {
    display: flex;
    gap: 20px;
}

.contact-form .form-row .form-group {
    flex: 1;
}

/* Formulario de newsletter */
.newsletter-form {
    display: flex;
    max-width: none;
    margin: 0;
    flex-direction: column;
}

.newsletter-form .form-control {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
    border-right: none;
}

.newsletter-form .btn {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
    white-space: nowrap;
}

/* Switch toggle */
.form-switch {
    position: relative;
    display: inline-block;
    width: 50px;
    height: 24px;
}

.form-switch input {
    opacity: 0;
    width: 0;
    height: 0;
}

.switch-slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #ccc;
    transition: var(--transition);
    border-radius: 24px;
}

.switch-slider:before {
    position: absolute;
    content: "";
    height: 18px;
    width: 18px;
    left: 3px;
    bottom: 3px;
    background-color: white;
    transition: var(--transition);
    border-radius: 50%;
}

input:checked + .switch-slider {
    background-color: var(--primary-color);
}

input:checked + .switch-slider:before {
    transform: translateX(26px);
}

/* Mensajes de estado */
.form-message {
    padding: 15px;
    border-radius: var(--border-radius);
    margin-bottom: 20px;
}

.form-message.success {
    background: #d4edda;
    color: #155724;
    border: 1px solid #c3e6cb;
}

.form-message.error {
    background: #f8d7da;
    color: #721c24;
    border: 1px solid #f5c6cb;
}

.form-message.warning {
    background: #fff3cd;
    color: #856404;
    border: 1px solid #ffeaa7;
}

/* Responsive */
@media (max-width: 768px) {
    .contact-form {
        padding: 30px 20px;
    }
    
    .contact-form .form-row {
        flex-direction: column;
        gap: 0;
    }
    
    .form-inline {
        flex-direction: column;
        align-items: stretch;
    }
    
    .form-inline .form-group {
        min-width: auto;
    }
    
    .newsletter-form {
        flex-direction: column;
        max-width: 100%;
    }
    
    .newsletter-form .form-control {
        border-radius: var(--border-radius);
        border-right: 2px solid var(--border-color);
        margin-bottom: 10px;
    }
    
    .newsletter-form .btn {
        border-radius: var(--border-radius);
    }
}


/* =========================================
   accordion.css
   Lines: 290
   ========================================= */

/* =========================================
   ACCORDION COMPONENT
   ========================================= 
   
   Modern accordion with smooth animations.
   Used in: Legal pages, FAQ sections
   
   Structure:
   .accordion-wrapper (optional container)
     .accordion-item
       .accordion-header (button)
         <span> (title)
         .accordion-icon (SVG)
       .accordion-content
   
   ========================================= */

/* ========== DESIGN TOKENS ========== */
:root {
    /* Colors */
    --accordion-bg: #ffffff;
    --accordion-border: #e5e7eb;
    --accordion-header-bg: #f9fafb;
    --accordion-header-hover: #f3f4f6;
    --accordion-header-active: #f3f4f6;
    --accordion-text: #1f2937;
    --accordion-text-secondary: #6b7280;
    
    /* Spacing */
    --accordion-item-gap: 1rem;
    --accordion-padding-x: 1.5rem;
    --accordion-padding-y: 1.25rem;
    --accordion-content-padding: 1.5rem;
    
    /* Border */
    --accordion-border-radius: 12px;
    --accordion-border-width: 1px;
    
    /* Typography */
    --accordion-font-size: 1rem;
    --accordion-font-weight: 500;
    --accordion-line-height: 1.5;
    
    /* Animation */
    --accordion-transition-duration: 0.3s;
    --accordion-transition-timing: cubic-bezier(0.4, 0, 0.2, 1);
}

/* ========== CONTAINER ========== */
.legal-accordion,
.faq-accordion,
.accordion-wrapper {
    display: flex;
    flex-direction: column;
    gap: var(--accordion-item-gap);
    width: 100%;
}

/* ========== ACCORDION ITEM ========== */
.accordion-item {
    background: var(--accordion-bg);
    border: var(--accordion-border-width) solid var(--accordion-border);
    border-radius: var(--accordion-border-radius);
    overflow: hidden;
    transition: box-shadow var(--accordion-transition-duration) var(--accordion-transition-timing);
}

.accordion-item:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}

.accordion-item:focus-within {
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}

/* ========== ACCORDION HEADER ========== */
.accordion-header {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    
    padding: var(--accordion-padding-y) var(--accordion-padding-x);
    
    background: var(--accordion-header-bg);
    color: var(--accordion-text);
    
    font-size: var(--accordion-font-size);
    font-weight: var(--accordion-font-weight);
    line-height: var(--accordion-line-height);
    text-align: left;
    
    border: none;
    cursor: pointer;
    
    transition: background-color var(--accordion-transition-duration) var(--accordion-transition-timing),
                color var(--accordion-transition-duration) var(--accordion-transition-timing);
}

.accordion-header:hover {
    background: var(--accordion-header-hover);
}

.accordion-header.active,
.accordion-header[aria-expanded="true"] {
    background: var(--accordion-header-active);
    color: var(--accordion-text);
}

.accordion-header:focus {
    outline: none;
}

.accordion-header:focus-visible {
    outline: 2px solid #3b82f6;
    outline-offset: -2px;
}

/* Header span (title) */
.accordion-header span {
    flex: 1;
    font-weight: inherit;
}

/* ========== ACCORDION ICON ========== */
.accordion-icon {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    color: var(--accordion-text-secondary);
    transition: transform var(--accordion-transition-duration) var(--accordion-transition-timing),
                color var(--accordion-transition-duration) var(--accordion-transition-timing);
}

.accordion-header:hover .accordion-icon {
    color: var(--accordion-text);
}

.accordion-header.active .accordion-icon,
.accordion-header[aria-expanded="true"] .accordion-icon {
    transform: rotate(180deg);
    color: var(--accordion-text);
}

/* ========== ACCORDION CONTENT ========== */
.accordion-content {
    max-height: 0;
    overflow: hidden;
    
    padding: 0 var(--accordion-content-padding);
    
    background: var(--accordion-bg);
    color: var(--accordion-text);
    
    transition: max-height var(--accordion-transition-duration) var(--accordion-transition-timing),
                padding var(--accordion-transition-duration) var(--accordion-transition-timing);
}

/* Active state with inline max-height override */
.accordion-content[style*="max-height"] {
    padding-top: var(--accordion-content-padding);
    padding-bottom: var(--accordion-content-padding);
}

/* Typography inside content */
.accordion-content p {
    margin: 0 0 1rem 0;
    line-height: 1.6;
    color: var(--accordion-text-secondary);
}

.accordion-content p:last-child {
    margin-bottom: 0;
}

.accordion-content ul,
.accordion-content ol {
    margin: 0 0 1rem 0;
    padding-left: 1.5rem;
}

.accordion-content ul:last-child,
.accordion-content ol:last-child {
    margin-bottom: 0;
}

.accordion-content li {
    margin-bottom: 0.5rem;
    line-height: 1.6;
    color: var(--accordion-text-secondary);
}

.accordion-content li:last-child {
    margin-bottom: 0;
}

.accordion-content strong {
    color: var(--accordion-text);
    font-weight: 600;
}

.accordion-content a {
    color: #3b82f6;
    text-decoration: underline;
    transition: color 0.2s ease;
}

.accordion-content a:hover {
    color: #2563eb;
}

/* ========== VARIANTS ========== */

/* Compact variant */
.accordion-compact .accordion-header {
    padding: 1rem var(--accordion-padding-x);
    font-size: 0.9375rem;
}

.accordion-compact .accordion-content {
    font-size: 0.875rem;
}

/* Large variant */
.accordion-large .accordion-header {
    padding: 1.5rem var(--accordion-padding-x);
    font-size: 1.125rem;
}

.accordion-large .accordion-icon {
    width: 24px;
    height: 24px;
}

/* Borderless variant */
.accordion-borderless .accordion-item {
    border: none;
    border-bottom: var(--accordion-border-width) solid var(--accordion-border);
    border-radius: 0;
}

.accordion-borderless .accordion-item:last-child {
    border-bottom: none;
}

/* ========== RESPONSIVE ========== */
@media (max-width: 768px) {
    :root {
        --accordion-padding-x: 1.25rem;
        --accordion-padding-y: 1rem;
        --accordion-content-padding: 1.25rem;
        --accordion-font-size: 0.9375rem;
    }
    
    .accordion-icon {
        width: 18px;
        height: 18px;
    }
}

@media (max-width: 480px) {
    :root {
        --accordion-padding-x: 1rem;
        --accordion-padding-y: 0.875rem;
        --accordion-content-padding: 1rem;
        --accordion-item-gap: 0.75rem;
    }
}

/* ========== ACCESSIBILITY ========== */
@media (prefers-reduced-motion: reduce) {
    .accordion-header,
    .accordion-icon,
    .accordion-content,
    .accordion-item {
        transition: none;
    }
}

/* High contrast mode */
@media (prefers-contrast: high) {
    .accordion-item {
        border-width: 2px;
    }
    
    .accordion-header:focus-visible {
        outline-width: 3px;
    }
}



/* =========================================
   cards.css
   Lines: 634
   ========================================= */

/**
 * CheckToBuild - Cards System
 * Sistema de cards reutilizables
 * 
 * @package CheckToBuild
 * @since 2.0.0
 */

/* ===========================
   CARD BASE (UNIFIED SYSTEM)
   =========================== */

.card {
    background: var(--bg-white);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-lg);
    box-shadow: var(--shadow-card);
    overflow: hidden;
    transition: all var(--transition-base);
}

.card:hover {
    box-shadow: var(--shadow-card-hover);
    transform: translateY(-4px);
    border-color: var(--border-hover, var(--primary));
}

/* ===========================
   CARD PARTS
   =========================== */

.card-header {
    padding: var(--space-5) var(--space-6);
    border-bottom: 1px solid var(--border-light);
}

.card-body {
    padding: var(--space-6);
}

.card-footer {
    padding: var(--space-4) var(--space-6);
    border-top: 1px solid var(--border-light);
    background: var(--bg-lighter);
}

.card-image {
    width: 100%;
    height: auto;
    display: block;
}

/* ===========================
   CARD VARIANTS (UNIFIED)
   =========================== */

/* Feature Card - para características/features */
.card-feature {
    padding: var(--space-6);
    text-align: center;
}

.card-feature .card-icon {
    width: 80px;
    height: 80px;
    margin: 0 auto var(--space-4);
    background: linear-gradient(135deg, #E0F7FA 0%, #B2EBF2 100%);
    border-radius: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.card-feature .card-icon svg,
.card-feature .card-icon i {
    width: 40px;
    height: 40px;
    color: var(--primary);
}

.card-feature h3 {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-semibold);
    margin-bottom: var(--space-2);
    color: var(--text-dark);
}

.card-feature p {
    font-size: var(--font-size-base);
    color: var(--text-medium);
    margin: 0;
}

/* Benefit Card - para beneficios */
.card-benefit {
    padding: var(--space-8);
    text-align: center;
}

.card-benefit:hover {
    border-color: var(--primary);
}

.card-benefit .card-icon {
    width: 80px;
    height: 80px;
    margin: 0 auto var(--space-4);
    background: linear-gradient(135deg, #E0F7FA 0%, #B2EBF2 100%);
    border-radius: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.card-benefit h3 {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-semibold);
    margin-bottom: var(--space-3);
}

.card-benefit p {
    color: var(--text-medium);
    line-height: var(--line-height-relaxed);
}

/* Use Case Card - para casos de uso */
.card-usecase {
    padding: var(--space-4);
}

.card-usecase:hover {
    border-color: var(--border-hover, #CBD5E0);
    box-shadow: var(--shadow-sm);
}

.card-usecase h3 {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-semibold);
    margin-bottom: var(--space-2);
}

.card-usecase p {
    color: var(--text-medium);
    margin: 0;
}

/* List Card - para items con checkbox/icon */
.card-list-item {
    display: flex;
    gap: var(--space-4);
    align-items: flex-start;
    padding: var(--space-4);
    border: none;
    box-shadow: none;
    background: transparent;
}

.card-list-item:hover {
    transform: none;
    background: var(--bg-lighter);
}

.card-list-item svg,
.card-list-item i {
    width: 24px;
    height: 24px;
    color: var(--success);
    flex-shrink: 0;
    margin-top: 4px;
}

.card-list-item h4 {
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-semibold);
    margin-bottom: var(--space-1);
}

.card-list-item p {
    font-size: var(--font-size-sm);
    color: var(--text-medium);
    margin: 0;
}

/* ===========================
   SOLUTION CARDS (modulares)
   =========================== */

.solution-card {
    border-radius: var(--border-radius-xl);
    padding: var(--space-8);
    position: relative;
    overflow: hidden;
    width: 100%;
    max-width: 400px;
    min-width: 350px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
    transition: all var(--transition-base);
}

.solution-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.15);
}

.solution-card-primary {
    background: linear-gradient(135deg, var(--primary) 0%, #2563eb 100%);
    color: var(--white);
}

.solution-card-secondary {
    background: var(--bg-white);
    border: 2px solid var(--border-color);
    color: var(--text-dark);
}

.solution-content h3 {
    font-size: var(--font-size-xl);
    font-weight: var(--font-weight-bold);
    margin-bottom: var(--space-4);
    line-height: var(--line-height-tight);
}

.solution-card-primary h3 {
    color: var(--white);
}

.solution-card-secondary h3 {
    color: var(--text-dark);
}

.solution-content h4 {
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-medium);
    margin-bottom: var(--space-4);
    color: var(--primary);
}

.solution-description p {
    margin-bottom: var(--space-3);
    line-height: var(--line-height-relaxed);
    font-size: var(--font-size-sm);
}

.solution-card-primary .solution-description p {
    color: rgba(255, 255, 255, 0.9);
}

.solution-card-secondary .solution-description p {
    color: var(--text-medium);
}

.solution-action {
    margin-top: var(--space-6);
}

/* Responsive */
@media (max-width: 768px) {
    .solution-card {
        max-width: 100%;
        min-width: auto;
    }
}

/* ===========================
   CARD TITLE & TEXT
   =========================== */

.card-title {
    font-size: var(--font-size-xl);
    font-weight: var(--font-weight-bold);
    color: var(--text-dark);
    margin-bottom: var(--space-2);
    line-height: var(--line-height-tight);
}

.card-subtitle {
    font-size: var(--font-size-sm);
    color: var(--text-medium);
    margin-bottom: var(--space-3);
}

.card-text {
    font-size: var(--font-size-base);
    color: var(--text-medium);
    line-height: var(--line-height-relaxed);
}

/* ===========================
   CARD VARIANTS
   =========================== */

/* Feature Card */
.feature-card {
    background: var(--bg-white);
    padding: var(--space-6);
    border-radius: var(--border-radius-lg);
    box-shadow: var(--shadow-card);
    text-align: center;
    transition: all var(--transition-base);
}

.feature-card:hover {
    box-shadow: var(--shadow-card-hover);
    transform: translateY(-6px);
}

.feature-card-icon {
    width: 64px;
    height: 64px;
    background: var(--accent);
    border-radius: var(--border-radius-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto var(--space-4);
    font-size: var(--font-size-3xl);
    color: var(--primary);
}

.feature-card-title {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-bold);
    color: var(--text-dark);
    margin-bottom: var(--space-3);
}

.feature-card-description {
    font-size: var(--font-size-base);
    color: var(--text-medium);
    line-height: var(--line-height-relaxed);
}

/* ===========================
   USE CASE CARD
   =========================== */

.use-case-card {
    background: var(--bg-white);
    border-radius: var(--border-radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-card);
    transition: all var(--transition-base);
    display: flex;
    flex-direction: column;
}

.use-case-card:hover {
    box-shadow: var(--shadow-card-hover);
    transform: translateY(-4px);
}

.use-case-card-image {
    width: 100%;
    height: 200px;
    object-fit: cover;
}

.use-case-card-content {
    padding: var(--space-5);
    flex: 1;
}

.use-case-card-title {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-bold);
    color: var(--text-dark);
    margin-bottom: var(--space-2);
}

.use-case-card-description {
    font-size: var(--font-size-sm);
    color: var(--text-medium);
    line-height: var(--line-height-relaxed);
    margin-bottom: var(--space-4);
}

.use-case-card-link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    color: var(--primary);
    font-weight: var(--font-weight-semibold);
    font-size: var(--font-size-sm);
    text-decoration: none;
    transition: gap var(--transition-base);
}

.use-case-card-link:hover {
    gap: var(--space-3);
}

/* ===========================
   TESTIMONIAL CARD
   =========================== */

.testimonial-card {
    background: var(--bg-white);
    padding: var(--space-6);
    border-radius: var(--border-radius-lg);
    box-shadow: var(--shadow-card);
    
}

.testimonial-card-quote {
    font-size: var(--font-size-lg);
    color: var(--text-dark);
    line-height: var(--line-height-relaxed);
    margin-bottom: var(--space-4);
    font-style: italic;
}

.testimonial-card-author {
    display: flex;
    align-items: center;
    gap: var(--space-3);
}

.testimonial-card-avatar {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    object-fit: cover;
}

.testimonial-card-info {
    flex: 1;
}

.testimonial-card-name {
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-bold);
    color: var(--text-dark);
    margin-bottom: 2px;
}

.testimonial-card-role {
    font-size: var(--font-size-sm);
    color: var(--text-medium);
}

/* ===========================
   PRICING CARD
   =========================== */

.pricing-card {
    background: var(--bg-white);
    padding: var(--space-8);
    border-radius: var(--border-radius-xl);
    box-shadow: var(--shadow-card);
    text-align: center;
    border: 2px solid transparent;
    transition: all var(--transition-base);
}

.pricing-card:hover {
    border-color: var(--primary);
    box-shadow: var(--shadow-card-hover);
    transform: translateY(-8px);
}

.pricing-card.featured {
    border-color: var(--primary);
    box-shadow: var(--shadow-lg);
    transform: scale(1.05);
}

.pricing-card-name {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-bold);
    color: var(--text-dark);
    margin-bottom: var(--space-2);
}

.pricing-card-price {
    font-size: var(--font-size-5xl);
    font-weight: var(--font-weight-extrabold);
    color: var(--primary);
    line-height: 1;
    margin-bottom: var(--space-1);
}

.pricing-card-period {
    font-size: var(--font-size-base);
    color: var(--text-medium);
    margin-bottom: var(--space-6);
}

.pricing-card-features {
    list-style: none;
    padding: 0;
    margin: 0 0 var(--space-6);
    text-align: left;
}

.pricing-card-feature {
    padding: var(--space-2) 0;
    font-size: var(--font-size-base);
    color: var(--text-medium);
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.pricing-card-feature::before {
    content: '✓';
    color: var(--success);
    font-weight: var(--font-weight-bold);
    font-size: var(--font-size-lg);
}

/* ===========================
   INFO CARD
   =========================== */

.info-card {
    background: var(--accent);
    padding: var(--space-5);
    border-radius: var(--border-radius-lg);
    
}

.info-card.info-warning {
    background: var(--warning-light);
    border-left-color: var(--warning);
}

.info-card.info-success {
    background: var(--success-light);
    border-left-color: var(--success);
}

.info-card.info-error {
    background: var(--error-light);
    border-left-color: var(--error);
}

/* ===========================
   CARD GRID
   =========================== */

.card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: var(--space-6);
}

.card-grid-sm {
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: var(--space-4);
}

.card-grid-lg {
    grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
    gap: var(--space-8);
}

/* ===========================
   RESPONSIVE CARDS
   =========================== */

@media (max-width: 992px) {
    .card-grid,
    .card-grid-lg {
        grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
        gap: var(--space-5);
    }
}

@media (max-width: 768px) {
    .card,
    .feature-card,
    .use-case-card,
    .testimonial-card,
    .pricing-card {
        box-shadow: var(--shadow-sm);
    }
    
    .card:hover,
    .feature-card:hover,
    .use-case-card:hover {
        transform: translateY(-2px);
    }
    
    .pricing-card.featured {
        transform: scale(1);
    }
    
    .card-grid,
    .card-grid-sm,
    .card-grid-lg {
        grid-template-columns: 1fr;
        gap: var(--space-4);
    }
    
    .card-body,
    .feature-card,
    .pricing-card {
        padding: var(--space-5);
    }
}

@media (max-width: 480px) {
    .card-header,
    .card-body,
    .card-footer {
        padding: var(--space-4);
    }
    
    .feature-card-icon {
        width: 56px;
        height: 56px;
        font-size: var(--font-size-2xl);
    }
    
    .pricing-card-price {
        font-size: var(--font-size-4xl);
    }
}

/* ===========================
   ANIMATIONS
   =========================== */

@media (prefers-reduced-motion: reduce) {
    .card:hover,
    .feature-card:hover,
    .use-case-card:hover,
    .pricing-card:hover {
        transform: none;
    }
}



/* =========================================
   feature-grid.css
   Lines: 416
   ========================================= */

/* =========================================
   FEATURE GRID COMPONENT
   ========================================= 
   
   Grid layouts for displaying features, capabilities, and benefits.
   Used in: Feature pages, landing pages, product showcases
   
   Two main patterns:
   1. Core Features Grid (.core-features-grid) - Simple text-based items
   2. Feature Cards (.features-grid) - Interactive cards with icons
   
   ========================================= */

/* ========== DESIGN TOKENS ========== */
:root {
    /* Colors */
    --feature-bg: #ffffff;
    --feature-border: #e5e7eb;
    --feature-text: #1f2937;
    --feature-text-secondary: #6b7280;
    --feature-icon-color: #3b82f6;
    --feature-icon-bg: #eff6ff;
    --feature-hover-bg: #f9fafb;
    --feature-arrow-color: #9ca3af;
    
    /* Spacing */
    --feature-gap: 2rem;
    --feature-padding: 2rem;
    --feature-icon-size: 48px;
    
    /* Border */
    --feature-border-radius: 12px;
    --feature-border-width: 1px;
    
    /* Typography */
    --feature-title-size: 1.25rem;
    --feature-text-size: 1rem;
}

/* =========================================
   1. CORE FEATURES GRID (Simple)
   ========================================= */

.core-features-section {
    padding: 4rem 0;
    background: #f9fafb;
}

.core-features-header {
    font-size: 2rem;
    font-weight: 700;
    color: var(--feature-text);
    margin: 0 0 2rem 0;
    text-align: center;
}

.core-features-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: var(--feature-gap);
}

.core-feature-item {
    background: var(--feature-bg);
    padding: var(--feature-padding);
    border-radius: var(--feature-border-radius);
    border: var(--feature-border-width) solid var(--feature-border);
    transition: all 0.3s ease;
}

.core-feature-item:hover {
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
    transform: translateY(-4px);
    border-color: var(--feature-icon-color);
}

.core-feature-item h3 {
    font-size: var(--feature-title-size);
    font-weight: 600;
    color: var(--feature-text);
    margin: 0 0 0.75rem 0;
    line-height: 1.3;
}

.core-feature-item p {
    font-size: var(--feature-text-size);
    line-height: 1.6;
    color: var(--feature-text-secondary);
    margin: 0;
}

/* =========================================
   2. FEATURE CARDS GRID (Interactive)
   ========================================= */

.features-grid-section {
    padding: 4rem 0;
}

.features-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: var(--feature-gap);
    margin-top: 2rem;
}

.feature-card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    
    padding: var(--feature-padding);
    background: var(--feature-bg);
    border: var(--feature-border-width) solid var(--feature-border);
    border-radius: var(--feature-border-radius);
    
    text-decoration: none;
    color: inherit;
    
    transition: all 0.3s ease;
}

.feature-card:hover {
    background: var(--feature-hover-bg);
    border-color: var(--feature-icon-color);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
    transform: translateY(-4px);
}

/* Feature Card Icon */
.feature-card-icon {
    width: var(--feature-icon-size);
    height: var(--feature-icon-size);
    
    display: flex;
    align-items: center;
    justify-content: center;
    
    background: var(--feature-icon-bg);
    color: var(--feature-icon-color);
    
    border-radius: 8px;
    
    flex-shrink: 0;
}

.feature-card-icon svg {
    width: 24px;
    height: 24px;
}

/* Feature Card Title */
.feature-card h3 {
    font-size: var(--feature-title-size);
    font-weight: 600;
    color: var(--feature-text);
    margin: 0;
    line-height: 1.3;
}

/* Feature Card Description */
.feature-card p {
    font-size: var(--feature-text-size);
    line-height: 1.6;
    color: var(--feature-text-secondary);
    margin: 0;
    flex: 1;
}

/* Feature Card Arrow */
.feature-card-arrow {
    align-self: flex-end;
    font-size: 1.5rem;
    color: var(--feature-arrow-color);
    transition: all 0.3s ease;
}

.feature-card:hover .feature-card-arrow {
    color: var(--feature-icon-color);
    transform: translateX(4px);
}

/* =========================================
   3. FEATURE ITEM (Alternative Pattern)
   ========================================= */

.feature-item {
    background: var(--feature-bg);
    padding: var(--feature-padding);
    border-radius: var(--feature-border-radius);
    text-align: center;
    transition: all 0.3s ease;
}

.feature-item:hover {
    background: var(--feature-hover-bg);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
    transform: translateY(-4px);
}

.feature-item h4 {
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--feature-text);
    margin: 0 0 0.5rem 0;
}

.feature-item p {
    font-size: 0.9375rem;
    line-height: 1.6;
    color: var(--feature-text-secondary);
    margin: 0;
}

/* =========================================
   4. SECTION HEADERS
   ========================================= */

.section-header {
    text-align: center;
    margin-bottom: 3rem;
}

.section-header h2 {
font-size: 2.25rem;
    font-weight: 700;
    color: var(--feature-text);
    margin: 0 0 1rem 0;
    line-height: 1.2;
    max-width: 700px;
    margin: auto;
    margin-bottom: 4rem;
}

.section-header p {
    font-size: 1.125rem;
    line-height: 1.6;
    color: var(--feature-text-secondary);
    margin: 0;
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
}

/* =========================================
   5. VARIANTS
   ========================================= */

/* Compact grid */
.features-grid-compact {
    --feature-gap: 1.5rem;
    --feature-padding: 1.5rem;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}

/* Large grid (2 columns max) */
.features-grid-large {
    grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
    --feature-padding: 2.5rem;
}

/* Three columns fixed */
.features-grid-triple {
    grid-template-columns: repeat(3, 1fr);
}

/* Two columns fixed */
.features-grid-dual {
    grid-template-columns: repeat(2, 1fr);
}

/* Four columns fixed */
.features-grid-quad {
    grid-template-columns: repeat(4, 1fr);
}

/* Center aligned cards */
.feature-card-centered {
    text-align: center;
    align-items: center;
}

.feature-card-centered .feature-card-arrow {
    align-self: center;
}

/* =========================================
   6. RESPONSIVE
   ========================================= */

@media (max-width: 1024px) {
    .features-grid-triple,
    .features-grid-quad {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .core-features-grid {
        grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    }
}

@media (max-width: 768px) {
    :root {
        --feature-gap: 1.5rem;
        --feature-padding: 1.5rem;
        --feature-title-size: 1.125rem;
        --feature-text-size: 0.9375rem;
        --feature-icon-size: 44px;
    }
    
    .features-grid,
    .features-grid-triple,
    .features-grid-dual,
    .features-grid-quad,
    .core-features-grid {
        grid-template-columns: 1fr;
    }
    
    .features-grid-section,
    .core-features-section {
        padding: 3rem 0;
    }
    
    .section-header {
        margin-bottom: 2rem;
    }
    
    .section-header h2 {
        font-size: 1.875rem;
    }
    
    .section-header p {
        font-size: 1rem;
    }
    
    .core-features-header {
        font-size: 1.75rem;
    }
    
    .feature-card:hover,
    .core-feature-item:hover,
    .feature-item:hover {
        transform: translateY(-2px);
    }
}

@media (max-width: 480px) {
    :root {
        --feature-gap: 1.25rem;
        --feature-padding: 1.25rem;
        --feature-icon-size: 40px;
    }
    
    .features-grid {
        margin-top: 1.5rem;
    }
    
    .section-header h2 {
        font-size: 1.5rem;
    }
    
    .section-header p {
        font-size: 0.9375rem;
    }
    
    .feature-card-icon svg {
        width: 20px;
        height: 20px;
    }
    
    .feature-card-arrow {
        font-size: 1.25rem;
    }
}

/* =========================================
   7. ACCESSIBILITY
   ========================================= */

@media (prefers-reduced-motion: reduce) {
    .feature-card,
    .core-feature-item,
    .feature-item,
    .feature-card-arrow {
        transition: none;
    }
    
    .feature-card:hover,
    .core-feature-item:hover,
    .feature-item:hover {
        transform: none;
    }
    
    .feature-card:hover .feature-card-arrow {
        transform: none;
    }
}

/* Focus states for keyboard navigation */
.feature-card:focus-visible {
    outline: 2px solid var(--feature-icon-color);
    outline-offset: 2px;
}

@media (prefers-contrast: high) {
    .feature-card,
    .core-feature-item,
    .feature-item {
        border-width: 2px;
    }
    
    .feature-card-icon {
        border: 2px solid var(--feature-icon-color);
    }
}



/* =========================================
   author-card.css
   Lines: 282
   ========================================= */

/* =========================================
   AUTHOR COMPONENTS
   ========================================= 
   
   Reusable author information displays.
   Used in: Blog posts, testimonials, guides, case studies
   
   Two main patterns:
   1. Full author card (.author-card) - standalone bio section
   2. Inline author info (.author-info) - compact version for testimonials
   
   ========================================= */

/* ========== DESIGN TOKENS ========== */
:root {
    /* Colors */
    --author-text-primary: #1f2937;
    --author-text-secondary: #6b7280;
    --author-text-tertiary: #9ca3af;
    --author-bg: #ffffff;
    --author-border: #e5e7eb;
    --author-avatar-bg: #f3f4f6;
    --author-avatar-text: #6b7280;
    
    /* Spacing */
    --author-card-padding: 2rem;
    --author-info-gap: 0.5rem;
    --author-avatar-size: 48px;
    
    /* Typography */
    --author-name-size: 1.125rem;
    --author-title-size: 0.9375rem;
    --author-company-size: 0.875rem;
    
    /* Border */
    --author-border-radius: 12px;
}

/* =========================================
   1. FULL AUTHOR CARD (standalone bio)
   ========================================= */

.guide-author {
    padding: 4rem 0;
    background: #f9fafb;
}

.author-card {
    background: var(--author-bg);
    border: 1px solid var(--author-border);
    border-radius: var(--author-border-radius);
    padding: var(--author-card-padding);
}

.author-content h2 {
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--author-text-primary);
    margin-bottom: 1.5rem;
}

.author-single {
    display: flex;
    gap: 1.5rem;
    align-items: flex-start;
}

.author-bio {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.author-bio img {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    object-fit: cover;
    margin-bottom: 0.5rem;
}

.author-bio h4 {
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--author-text-primary);
    margin: 0;
}

.author-bio .author-title {
    font-size: var(--author-title-size);
    font-weight: 500;
    color: var(--author-text-secondary);
    margin: 0;
}

.author-bio p {
    font-size: 1rem;
    line-height: 1.6;
    color: var(--author-text-secondary);
    margin: 0;
}

/* =========================================
   2. INLINE AUTHOR INFO (testimonials)
   ========================================= */

/* Container for avatar + info */
.testimonial-author,
.author-section {
    display: flex;
    align-items: center;
    gap: 1rem;
}

/* Avatar circle with initials */
.author-avatar {
    flex-shrink: 0;
    width: var(--author-avatar-size);
    height: var(--author-avatar-size);
    
    display: flex;
    align-items: center;
    justify-content: center;
    
    background: var(--author-avatar-bg);
    color: var(--author-avatar-text);
    
    font-size: 1rem;
    font-weight: 600;
    text-transform: uppercase;
    
    border-radius: 50%;
    border: 2px solid var(--author-border);
}

/* Info block */
.author-info {
    display: flex;
    flex-direction: column;
    gap: var(--author-info-gap);
    flex: 1;
}

/* Name */
.author-name {
    font-size: var(--author-name-size);
    font-weight: 600;
    color: var(--author-text-primary);
    line-height: 1.3;
}

/* Title/Role */
.author-title {
    font-size: var(--author-title-size);
    font-weight: 500;
    color: var(--author-text-secondary);
    line-height: 1.4;
}

/* Company/Project */
.author-company {
    font-size: var(--author-company-size);
    color: var(--author-text-tertiary);
    line-height: 1.4;
}

/* =========================================
   3. VARIANT: Large Avatar
   ========================================= */

.author-avatar-lg {
    --author-avatar-size: 64px;
    font-size: 1.25rem;
}

.author-avatar-sm {
    --author-avatar-size: 40px;
    font-size: 0.875rem;
}

/* =========================================
   4. VARIANT: Horizontal Layout
   ========================================= */

.author-card-horizontal {
    display: flex;
    align-items: center;
    gap: 2rem;
}

.author-card-horizontal .author-bio {
    flex-direction: row;
    align-items: center;
}

.author-card-horizontal .author-bio img {
    margin-bottom: 0;
}

/* =========================================
   5. VARIANT: Minimal (no border/bg)
   ========================================= */

.author-card-minimal {
    background: transparent;
    border: none;
    padding: 0;
}

/* =========================================
   6. RESPONSIVE
   ========================================= */

@media (max-width: 768px) {
    .author-card {
        padding: 1.5rem;
    }
    
    .author-content h2 {
        font-size: 1.5rem;
    }
    
    .author-single {
        flex-direction: column;
    }
    
    .author-bio img {
        width: 100px;
        height: 100px;
    }
    
    .author-bio h4 {
        font-size: 1.125rem;
    }
    
    .guide-author {
        padding: 3rem 0;
    }
}

@media (max-width: 480px) {
    :root {
        --author-avatar-size: 44px;
        --author-name-size: 1rem;
        --author-title-size: 0.875rem;
        --author-company-size: 0.8125rem;
    }
    
    .author-card {
        padding: 1.25rem;
    }
    
    .author-bio img {
        width: 80px;
        height: 80px;
    }
    
    .testimonial-author,
    .author-section {
        gap: 0.75rem;
    }
}

/* =========================================
   7. ACCESSIBILITY
   ========================================= */

@media (prefers-reduced-motion: reduce) {
    .author-avatar {
        transition: none;
    }
}

@media (prefers-contrast: high) {
    .author-card {
        border-width: 2px;
    }
    
    .author-avatar {
        border-width: 3px;
    }
}



/* =========================================
   testimonials.css
   Lines: 208
   ========================================= */

/**
 * TESTIMONIALS COMPONENT - Sistema Base Modular
 * Grid de testimonios/casos de éxito
 * Reutilizable en todas las landing pages
 */

/* ============================================
   TESTIMONIALS GRID
   ============================================ */

.testimonials-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
    gap: var(--spacing-6);
    margin-top: var(--spacing-8);
}

/* ============================================
   TESTIMONIAL CARD
   ============================================ */

.testimonial-card {
    background: white;
    border-radius: var(--radius-lg);
    padding: var(--spacing-6);
    box-shadow: var(--shadow-md);
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-4);
}

.testimonial-card:hover {
    transform: translateY(-8px);
    box-shadow: var(--shadow-xl);
}

/* ============================================
   TESTIMONIAL HEADER
   ============================================ */

.testimonial-header {
    display: flex;
    align-items: center;
    gap: var(--spacing-4);
}

.testimonial-avatar {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid var(--color-primary);
}

.testimonial-info {
    flex: 1;
}

.testimonial-name {
    font-weight: 700;
    font-size: var(--font-size-lg);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-1);
}

.testimonial-role {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
}

.testimonial-company {
    font-size: var(--font-size-sm);
    color: var(--color-primary);
    font-weight: 600;
}

/* ============================================
   TESTIMONIAL RATING
   ============================================ */

.testimonial-rating {
    display: flex;
    gap: var(--spacing-1);
    color: #fbbf24;
    font-size: var(--font-size-lg);
}

/* ============================================
   TESTIMONIAL CONTENT
   ============================================ */

.testimonial-quote {
    font-size: var(--font-size-lg);
    line-height: 1.8;
    color: var(--color-text-primary);
    font-style: italic;
    position: relative;
    padding-left: var(--spacing-5);
}

.testimonial-quote::before {
    content: '"';
    position: absolute;
    left: 0;
    top: -10px;
    font-size: var(--font-size-5xl);
    color: var(--color-primary);
    opacity: 0.3;
    line-height: 1;
}

/* ============================================
   TESTIMONIAL STATS (opcional)
   ============================================ */

.testimonial-stats {
    display: flex;
    gap: var(--spacing-6);
    padding-top: var(--spacing-4);
    border-top: 1px solid var(--color-border);
}

.testimonial-stat {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-1);
}

.testimonial-stat-value {
    font-size: var(--font-size-2xl);
    font-weight: 700;
    color: var(--color-primary);
}

.testimonial-stat-label {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
}

/* ============================================
   TESTIMONIAL BADGE (opcional)
   ============================================ */

.testimonial-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2);
    padding: var(--spacing-2) var(--spacing-3);
    background: var(--color-primary);
    color: white;
    border-radius: var(--radius-full);
    font-size: var(--font-size-xs);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* ============================================
   TESTIMONIAL VIDEO (opcional)
   ============================================ */

.testimonial-video {
    width: 100%;
    border-radius: var(--radius-md);
    overflow: hidden;
    margin-top: var(--spacing-4);
}

.testimonial-video video,
.testimonial-video iframe {
    width: 100%;
    height: auto;
    display: block;
}

/* ============================================
   RESPONSIVE
   ============================================ */

@media (max-width: 768px) {
    .testimonials-grid {
        grid-template-columns: 1fr;
        gap: var(--spacing-4);
    }
    
    .testimonial-card {
        padding: var(--spacing-4);
    }
    
    .testimonial-header {
        gap: var(--spacing-3);
    }
    
    .testimonial-avatar {
        width: 50px;
        height: 50px;
    }
    
    .testimonial-quote {
        font-size: var(--font-size-base);
        padding-left: var(--spacing-4);
    }
    
    .testimonial-stats {
        gap: var(--spacing-4);
    }
}



/* =========================================
   testimonial-extras.css
   Lines: 151
   ========================================= */

/**
 * TESTIMONIAL CARD EXTRAS - Extensión del componente testimonials
 * Elementos adicionales específicos para cards con más detalle
 */

/* ============================================
   AUTHOR INFO EXPANDED
   ============================================ */

.author-avatar {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: var(--color-primary);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: var(--font-size-lg);
    border: 3px solid white;
    box-shadow: var(--shadow-md);
}

.author-info {
    flex: 1;
}

.author-name {
    font-weight: 700;
    font-size: var(--font-size-lg);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-1);
}

.author-role {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-05);
}

.author-project {
    font-size: var(--font-size-sm);
    color: var(--color-primary);
    font-weight: 600;
}

/* ============================================
   TESTIMONIAL AUTHOR (layout alternativo)
   ============================================ */

.testimonial-author {
    display: flex;
    align-items: center;
    gap: var(--spacing-4);
    padding-top: var(--spacing-4);
    border-top: 1px solid var(--color-border);
}

/* ============================================
   QUOTE ICON
   ============================================ */

.quote-icon {
    font-size: var(--font-size-4xl);
    color: var(--color-primary);
    opacity: 0.2;
    line-height: 1;
}

/* ============================================
   RESULTS GRID (testimonial con resultados)
   ============================================ */

.results-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--spacing-3);
    margin-top: var(--spacing-4);
    padding-top: var(--spacing-4);
    border-top: 1px solid var(--color-border);
}

.result-item {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-1);
}

.result-item label {
    font-size: var(--font-size-xs);
    color: var(--color-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 600;
}

.result-item span {
    font-size: var(--font-size-lg);
    font-weight: 700;
    color: var(--color-text-primary);
}

.result-item.success span {
    color: #10b981;
}

.result-item.warning span {
    color: #f59e0b;
}

.result-item.error span {
    color: #ef4444;
}

/* ============================================
   VALIDATION RESULTS
   ============================================ */

.validation-results {
    background: var(--color-surface);
    padding: var(--spacing-4);
    border-radius: var(--radius-md);
    margin-top: var(--spacing-4);
}

.validation-results h4 {
    font-size: var(--font-size-sm);
    font-weight: 700;
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-3);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* ============================================
   RESPONSIVE
   ============================================ */

@media (max-width: 768px) {
    .results-grid {
        grid-template-columns: 1fr;
        gap: var(--spacing-2);
    }
    
    .author-avatar {
        width: 50px;
        height: 50px;
        font-size: var(--font-size-base);
    }
}



/* =========================================
   faq.css
   Lines: 571
   ========================================= */

/**
 * Componente: Sección FAQ Dinámica
 * Estilos para preguntas frecuentes modulares
 */

/* Variables específicas del componente usando las variables globales */
.faq-section {
    --faq-primary: #004aad;
    --faq-secondary: #1561B2;
    --faq-accent: #E6FBFF;
    --faq-success: #28a745;
    --faq-warning: #ffc107;
    --faq-error: #dc3545;
    --faq-shadow: 0 20px 60px rgba(0, 74, 173, 0.15);
    --white: #ffffff;
    --text-color: #2c3e50;
    
    padding: 3rem 0;
    width: 100%;
}

.faq-container-wrapper {
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 2rem;
}

/* Header */
.faq-header {
    text-align: center;
    margin-bottom: 3rem;
}

.faq-title {
    font-family: var(--font-secondary, 'Poppins', sans-serif);
    font-size: clamp(2rem, 4vw, 2.5rem);
    font-weight: 700;
    color: var(--faq-secondary);
    margin-bottom: 1rem;
    position: relative;
}

.faq-title::after {
    content: '';
    position: absolute;
    bottom: -10px;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 4px;
    background: linear-gradient(135deg, var(--faq-primary) 0%, var(--faq-secondary) 100%);
    border-radius: 2px;
}

.faq-subtitle {
    font-size: 1.1rem;
    color: var(--text-color);
    max-width: 600px;
    margin: 0 auto 2rem;
    opacity: 0.8;
}

/* Search Bar */
.faq-search {
    position: relative;
    max-width: 500px;
    margin: 0 auto 3rem;
}

.search-input {
    width: 100%;
    padding: 1rem 1rem 1rem 3rem;
    border: 2px solid #e1e8ed;
    border-radius: 50px;
    font-size: 1rem;
    background: var(--bg-color);
    transition: var(--transition);
    box-shadow: var(--faq-shadow);
}

.search-input:focus {
    outline: none;
    border-color: var(--faq-primary);
    box-shadow: 0 0 0 3px rgba(0, 74, 173, 0.1);
}

.search-icon {
    position: absolute;
    left: 1rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--faq-primary);
    font-size: 1.1rem;
}

.search-clear {
    position: absolute;
    right: 1rem;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    color: var(--text-color);
    cursor: pointer;
    opacity: 0;
    transition: opacity 0.3s ease;
    font-size: 1.2rem;
}

.search-clear.visible {
    opacity: 1;
}

.search-clear:hover {
    color: var(--faq-error);
}

/* Category Filters */
.category-filters {
    display: flex;
    justify-content: center;
    gap: 1rem;
    margin-bottom: 3rem;
    flex-wrap: wrap;
}

.category-btn {
    padding: 0.6rem 1.2rem;
    background: var(--bg-color);
    border: 2px solid var(--faq-primary);
    color: var(--faq-primary);
    border-radius: 25px;
    font-family: var(--font-secondary, 'Poppins', sans-serif);
    font-weight: 600;
    font-size: 0.9rem;
    cursor: pointer;
    transition: var(--transition);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.category-btn.active,
.category-btn:hover {
    background: var(--faq-primary);
    color: var(--bg-color);
    transform: translateY(-2px);
    box-shadow: var(--faq-shadow);
}

/* FAQ Container */
.faq-container {
    background: var(--bg-color);
    border-radius: 20px;
    box-shadow: var(--faq-shadow);
    overflow: hidden;
}

.faq-item {
    border-bottom: 1px solid rgba(0, 74, 173, 0.1);
    transition: var(--transition);
    opacity: 1;
    transform: translateY(0);
}

.faq-item.hidden {
    opacity: 0;
    transform: translateY(-10px);
    height: 0;
    overflow: hidden;
    border-bottom: none;
}

.faq-item:last-child {
    border-bottom: none;
}

.faq-question {
    padding: 1.5rem 2rem;
    background: none;
    border: none;
    width: 100%;
    text-align: left;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-family: var(--font-secondary);
    font-weight: 600;
    font-size: 14px;
    color: var(--faq-secondary);
    transition: var(--transition);
    position: relative;
}

.faq-question:hover {
    background: rgba(0, 74, 173, 0.05);
    color: var(--faq-primary);
}

.faq-question[aria-expanded="true"] {
    background: rgba(0, 74, 173, 0.1);
    color: var(--faq-primary);
}

.faq-question::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 0;
    height: 3px;
    background: linear-gradient(135deg, var(--faq-primary) 0%, var(--faq-secondary) 100%);
    transition: width 0.3s ease;
}

.faq-question[aria-expanded="true"]::after {
    width: 100%;
}

.faq-icon {
    font-size: 1.2rem;
    transition: transform 0.3s ease;
    color: var(--faq-primary);
}

.faq-question[aria-expanded="true"] .faq-icon {
    transform: rotate(180deg);
}

.faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    background: rgba(0, 74, 173, 0.02);
}

.faq-answer[aria-hidden="false"] {
    max-height: 500px;
    padding: 1.5rem 2rem 2rem;
}

.faq-answer-content {
    font-size: 1rem;
    line-height: 1.7;
    color: var(--text-color);
}

.faq-answer-content p {
    margin-bottom: 1rem;
}

.faq-answer-content p:last-child {
    margin-bottom: 0;
}

.faq-answer-content ul {
    margin: 1rem 0;
    padding-left: 1.5rem;
}

.faq-answer-content li {
    margin-bottom: 0.5rem;
}

.faq-answer-content strong {
    color: var(--faq-primary);
    font-weight: 600;
}

/* Category Tags */
.category-tag {
    display: inline-block;
    padding: 0.2rem 0.6rem;
    background: rgba(0, 74, 173, 0.1);
    color: var(--faq-primary);
    border-radius: 12px;
    font-size: 0.8rem;
    font-weight: 600;
    margin-bottom: 0.5rem;
}

/* Statistics Cards */
.faq-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 1.5rem;
    margin-bottom: 3rem;
}

.faq-stat-card {
    background: var(--white);
    padding: 1.5rem;
    border-radius: 15px;
    box-shadow: var(--faq-shadow);
    text-align: center;
    border: 1px solid rgba(0, 74, 173, 0.1);
    transition: transform 0.3s ease;
}

.faq-stat-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 20px 60px rgba(0, 74, 173, 0.15);
}

.faq-stat-icon {
    width: 50px;
    height: 50px;
    background: linear-gradient(135deg, var(--faq-primary) 0%, var(--faq-secondary) 100%);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1rem;
    color: var(--white) !important;
    font-size: 1.3rem;
}

.faq-stat-icon i,
.faq-stat-icon .fas,
.faq-stat-icon .fa,
.faq-stat-icon .far,
.faq-stat-icon .fab {
    color: var(--white) !important;
    font-size: 1.3rem !important;
    display: block !important;
}

.faq-stat-value {
    font-family: 'Montserrat', sans-serif;
    font-size: 1.8rem;
    font-weight: 800;
    color: var(--faq-primary);
    margin-bottom: 0.5rem;
}

.faq-stat-label {
    font-size: 0.9rem;
    color: var(--text-color);
    font-weight: 600;
}

/* No Results */
.no-results {
    text-align: center;
    padding: 3rem;
    display: none;
}

.no-results.visible {
    display: block;
}

.no-results-icon {
    font-size: 3rem;
    color: var(--faq-primary);
    margin-bottom: 1rem;
    opacity: 0.5;
}

.no-results-title {
    font-family: 'Montserrat', sans-serif;
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--faq-secondary);
    margin-bottom: 0.5rem;
}

.no-results-text {
    color: var(--text-color);
    opacity: 0.7;
}

/* CTA Section */
.faq-cta {
    background: linear-gradient(135deg, var(--faq-primary) 0%, var(--faq-secondary) 100%);
    color: var(--white);
    padding: 2.5rem;
    border-radius: 20px;
    text-align: center;
    margin-top: 3rem;
    position: relative;
    overflow: hidden;
}

.faq-cta::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="grain" width="100" height="100" patternUnits="userSpaceOnUse"><circle cx="25" cy="25" r="1" fill="white" opacity="0.1"/><circle cx="75" cy="75" r="1" fill="white" opacity="0.05"/></pattern></defs><rect width="100" height="100" fill="url(%23grain)"/></svg>');
    pointer-events: none;
}

.cta-title {
    font-family: 'Montserrat', sans-serif;
    font-size: 1.8rem;
    font-weight: 700;
    margin-bottom: 1rem;
    color: var(--white);
    position: relative;
    z-index: 2;
}

.cta-subtitle {
    margin-bottom: 2rem;
    opacity: 0.95;
    color: var(--white);
    position: relative;
    z-index: 2;
}

.faq-btn {
    display: inline-block;
    padding: 1rem 2rem;
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    text-decoration: none;
    border-radius: 50px;
    transition: all 0.3s ease;
    border: none;
    cursor: pointer;
    font-size: 0.9rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    position: relative;
    z-index: 2;
}

.faq-cta .faq-btn-primary,
.faq-cta .faq-btn-primary:link,
.faq-cta .faq-btn-primary:visited {
    background: var(--white) !important;
    color: var(--faq-primary) !important;
    box-shadow: var(--faq-shadow);
    text-decoration: none !important;
    border: 2px solid var(--white);
}

.faq-cta .faq-btn-primary:hover,
.faq-cta .faq-btn-primary:focus,
.faq-cta .faq-btn-primary:active {
    transform: translateY(-3px);
    box-shadow: 0 30px 80px rgba(0, 74, 173, 0.2);
    background: var(--white) !important;
    color: var(--faq-primary) !important;
    text-decoration: none !important;
}

.faq-cta .faq-btn-outline,
.faq-cta .faq-btn-outline:link,
.faq-cta .faq-btn-outline:visited {
    background: transparent !important;
    color: var(--white) !important;
    border: 2px solid var(--white) !important;
    margin-left: 1rem;
    text-decoration: none !important;
}

.faq-cta .faq-btn-outline:hover,
.faq-cta .faq-btn-outline:focus,
.faq-cta .faq-btn-outline:active {
    background: var(--white) !important;
    color: var(--faq-primary) !important;
    border-color: var(--white) !important;
    text-decoration: none !important;
}

/* Highlight para búsquedas */
.highlight {
    background: rgba(255, 255, 0, 0.3);
    padding: 0 0.2rem;
    border-radius: 3px;
    transition: background 0.3s ease;
}

/* Animaciones */
.fade-in {
    opacity: 0;
    transform: translateY(20px);
    animation: fadeIn 0.6s ease forwards;
}

@keyframes fadeIn {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Mobile Responsive */
@media (max-width: 768px) {
    .faq-container-wrapper {
        padding: 0 1rem;
    }
    
    .faq-question {
        padding: 1.2rem 1.5rem;
        font-size: 1rem;
    }
    
    .faq-answer[aria-hidden="false"] {
        padding: 1.2rem 1.5rem 1.5rem;
    }
    
    .category-filters {
        gap: 0.5rem;
    }
    
    .category-btn {
        font-size: 0.8rem;
        padding: 0.5rem 1rem;
    }
}

@media (max-width: 480px) {
    .faq-section {
        padding: 2rem 0;
    }
    
    .faq-title {
        font-size: 1.8rem;
    }
    
    .faq-subtitle {
        font-size: 1rem;
    }
}

/* Accessibility */
.faq-question:focus {
    outline: none;
}

.category-btn:focus {
    outline: 2px solid var(--faq-primary);
    outline-offset: 2px;
}

/* High contrast mode */
@media (prefers-contrast: high) {
    .faq-question {
        border-bottom: 2px solid var(--faq-primary);
    }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    * {
        animation-duration: 0.01ms !important;
        transition-duration: 0.01ms !important;
    }
}

/* Print styles */
@media print {
    .faq-search,
    .category-filters {
        display: none;
    }
    
    .faq-answer {
        max-height: none !important;
        padding: 1rem 2rem !important;
    }
    
    .faq-question::after {
        display: none;
    }
}


/* =========================================
   sections.css
   Lines: 108
   ========================================= */

/**
 * SECTIONS COMPONENT - Sistema Base Modular
 * Estilos para secciones de landing pages
 * Reutilizable en todas las plantillas
 */

/* ============================================
   SECTION CONTAINERS
   ============================================ */

.landing-hero-section,
.landing-demo-section,
.landing-testimonials-section,
.landing-features-section,
.landing-benefits-section,
.landing-cta-section,
.landing-pricing-section {
    padding: var(--spacing-10) 0;
    position: relative;
}

.landing-hero-section {
    padding: var(--spacing-12) 0;
    display: flex;
    align-items: center;
}

.landing-demo-section {
    background: var(--color-surface);
    padding: var(--spacing-12) 0;
}

.landing-testimonials-section {
    background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
    padding: var(--spacing-12) 0;
}

.landing-cta-section {
    background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
    color: white;
    padding: var(--spacing-12) 0;
}

/* ============================================
   SECTION HEADER
   ============================================ */

.section-header {
    text-align: center;
    margin-bottom: var(--spacing-10);
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}

.section-title {
    font-size: var(--font-size-4xl);
    font-weight: 800;
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-4);
    line-height: 1.2;
    letter-spacing: -0.5px;
}

.section-subtitle {
    font-size: var(--font-size-xl);
    color: var(--color-text-secondary);
    line-height: 1.6;
    max-width: 700px;
    margin: 0 auto;
}

.landing-cta-section .section-title,
.landing-cta-section .section-subtitle {
    color: white;
}

/* ============================================
   RESPONSIVE
   ============================================ */

@media (max-width: 768px) {
    .landing-hero-section,
    .landing-demo-section,
    .landing-testimonials-section,
    .landing-features-section,
    .landing-benefits-section,
    .landing-cta-section {
        padding: var(--spacing-8) 0;
    }
    
    .landing-hero-section {
        min-height: auto;
        padding: var(--spacing-10) 0;
    }
    
    .section-header {
        margin-bottom: var(--spacing-6);
    }
    
    .section-title {
        font-size: var(--font-size-3xl);
    }
    
    .section-subtitle {
        font-size: var(--font-size-lg);
    }
}



/* =========================================
   cta-section.css
   Lines: 135
   ========================================= */

/**
 * CTA SECTION COMPONENT - Sistema Base Modular
 * Call to action sections con botones y urgencia
 * Reutilizable en todas las landing pages
 */

/* ============================================
   CTA SECTION CONTAINER
   ============================================ */

.landing-cta-section {
    background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
    color: white;
    padding: var(--spacing-12) 0;
    position: relative;
    overflow: hidden;
}

.landing-cta-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: url('data:image/svg+xml,<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="40" fill="rgba(255,255,255,0.05)"/></svg>');
    opacity: 0.5;
}

/* ============================================
   CTA CONTENT
   ============================================ */

.cta-title {
    font-size: var(--font-size-4xl);
    font-weight: 800;
    color: white;
    margin-bottom: var(--spacing-4);
    text-align: center;
    line-height: 1.2;
}

.cta-subtitle {
    font-size: var(--font-size-xl);
    color: rgba(255, 255, 255, 0.9);
    text-align: center;
    max-width: 700px;
    margin: 0 auto var(--spacing-8) auto;
    line-height: 1.6;
}

/* ============================================
   CTA BUTTONS
   ============================================ */

.cta-buttons {
    display: flex;
    gap: var(--spacing-4);
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
}

.btn-hero-landing {
    padding: var(--spacing-4) var(--spacing-8);
    font-size: var(--font-size-lg);
    font-weight: 700;
    border-radius: var(--radius-lg);
    transition: all 0.3s ease;
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2);
}

.btn-inline {
    white-space: nowrap;
}

/* ============================================
   TESTIMONIALS CTA (dentro de testimonials)
   ============================================ */

.testimonials-cta {
    text-align: center;
    margin-top: var(--spacing-10);
    padding: var(--spacing-8);
    background: linear-gradient(135deg, var(--color-surface) 0%, white 100%);
    border-radius: var(--radius-lg);
    border: 2px solid var(--color-border);
}

.testimonials-cta h3 {
    font-size: var(--font-size-2xl);
    font-weight: 700;
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-3);
}

.testimonials-cta p {
    font-size: var(--font-size-lg);
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-5);
}

/* ============================================
   RESPONSIVE
   ============================================ */

@media (max-width: 768px) {
    .landing-cta-section {
        padding: var(--spacing-10) 0;
    }
    
    .cta-title {
        font-size: var(--font-size-3xl);
    }
    
    .cta-subtitle {
        font-size: var(--font-size-base);
    }
    
    .cta-buttons {
        flex-direction: column;
        gap: var(--spacing-3);
    }
    
    .btn-hero-landing {
        width: 100%;
        justify-content: center;
    }
    
    .testimonials-cta {
        padding: var(--spacing-5);
    }
}



/* =========================================
   footer.css
   Lines: 611
   ========================================= */

/**
 * CheckToBuild - Footer Styles
 * Version: 1.0
 * Description: Estilos para el footer principal
 */

/* ========================================
   1. FOOTER BASE
   ======================================== */

.ctb-footer {
    background: var(--ctb-gray-100);
    color: var(--ctb-gray-700);
    margin-top: auto;
    position: relative;
}

/* ========================================
   2. MAIN FOOTER CONTENT
   ======================================== */

.footer-main {
    padding: var(--ctb-space-20) 0 var(--ctb-space-16);
    background: var(--ctb-white);
    border-top: 1px solid var(--ctb-gray-200);
}

.footer-grid {
    display: grid;
    grid-template-columns: 2fr repeat(5, 1fr);
    gap: var(--ctb-space-8);
}

/* ========================================
   3. FOOTER COLUMNS
   ======================================== */

.footer-column {
    display: flex;
    flex-direction: column;
}

/* Company Column */
.footer-company {
    padding-right: var(--ctb-space-8);
}

.footer-logo {
    margin-bottom: var(--ctb-space-4);
}

.footer-logo svg {
    height: 35px;
    width: auto;
}

.footer-description {
    font-size: var(--ctb-text-sm);
    color: var(--ctb-gray-600);
    line-height: 1.6;
    margin-bottom: var(--ctb-space-6);
}

.footer-company-info {
    font-size: var(--ctb-text-sm);
    color: var(--ctb-gray-600);
    margin-bottom: var(--ctb-space-6);
}

.footer-company-info p {
    margin: 0 0 var(--ctb-space-1) 0;
}

.footer-company-info strong {
    color: var(--ctb-gray-700);
    font-weight: 600;
}

/* Social Links */
.footer-social {
    display: flex;
    gap: var(--ctb-space-3);
}

.footer-social a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background: var(--ctb-gray-100);
    border-radius: var(--ctb-radius-full);
    color: var(--ctb-gray-600);
    transition: all var(--ctb-transition-fast);
}

.footer-social a:hover {
    background: var(--ctb-primary);
    color: var(--ctb-white);
    transform: translateY(-2px);
}

.footer-social svg {
    width: 18px;
    height: 18px;
}

/* ========================================
   4. FOOTER LINKS
   ======================================== */

.footer-title {
    font-family: var(--ctb-font-heading);
    font-size: var(--ctb-text-base);
    font-weight: 700;
    color: var(--ctb-gray-900);
    margin-bottom: var(--ctb-space-4);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.footer-links {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-links li {
    margin-bottom: var(--ctb-space-2);
}

.footer-links a {
    color: var(--ctb-gray-600);
    font-size: var(--ctb-text-sm);
    text-decoration: none;
    transition: all var(--ctb-transition-fast);
    display: inline-block;
    position: relative;
}

.footer-links a::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 0;
    height: 2px;
    background: var(--ctb-primary);
    transition: width var(--ctb-transition-fast);
}

.footer-links a:hover {
    color: var(--ctb-primary);
}

.footer-links a:hover::after {
    width: 100%;
}

/* ========================================
   5. NEWSLETTER SECTION - SPECIFIC SELECTORS
   ======================================== */

.ctb-footer .footer-newsletter {
    background: linear-gradient(135deg, #004aad 0%, #1561B2 100%) !important;
    padding: var(--ctb-space-12) 0 !important;
    position: relative;
    overflow: hidden;
    margin: 0 !important;
    border: none !important;
}

.ctb-footer .footer-newsletter::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="grid" width="10" height="10" patternUnits="userSpaceOnUse"><path d="M 10 0 L 0 0 0 10" fill="none" stroke="white" stroke-width="0.5" opacity="0.05"/></pattern></defs><rect width="100" height="100" fill="url(%23grid)"/></svg>');
    pointer-events: none;
}

.ctb-footer .footer-newsletter .container {
    position: relative !important;
    z-index: 2 !important;
}

.ctb-footer .newsletter-content {
    display: grid;
    grid-template-columns: 1fr 1.5fr !important;
    gap: var(--ctb-space-8) !important;
    align-items: center !important;
    position: relative !important;
    z-index: 1 !important;
    max-width: none !important;
    width: 100% !important;
}

.ctb-footer .newsletter-text h3 {
    font-family: var(--ctb-font-heading) !important;
    font-size: var(--ctb-text-2xl) !important;
    font-weight: 700 !important;
    color: var(--ctb-white) !important;
    margin-bottom: var(--ctb-space-2) !important;
    margin-top: 0 !important;
    line-height: 1.2 !important;
}

.ctb-footer .newsletter-text p {
    color: rgba(255, 255, 255, 0.9) !important;
    font-size: var(--ctb-text-base) !important;
    margin: 0 !important;
    line-height: 1.5 !important;
}

.ctb-footer .newsletter-form .form-group {
    display: flex;
    gap: var(--ctb-space-3);
    margin-bottom: var(--ctb-space-3);
}

.ctb-footer .newsletter-form .form-control {
    flex: 1;
    padding: var(--ctb-space-4);
    font-size: var(--ctb-text-base);
    border: 2px solid rgba(255, 255, 255, 0.2);
    border-radius: var(--ctb-radius-md);
    background: rgba(255, 255, 255, 0.1);
    color: var(--ctb-white);
    transition: all var(--ctb-transition-fast);
}

.ctb-footer .newsletter-form .form-control::placeholder {
    color: rgba(255, 255, 255, 0.6);
}

.ctb-footer .newsletter-form .form-control:focus {
    outline: none;
    border-color: rgba(255, 255, 255, 0.4);
    background: rgba(255, 255, 255, 0.15);
}

.ctb-footer .newsletter-form .btn {
    padding: var(--ctb-space-4) var(--ctb-space-6) !important;
    background: var(--ctb-white) !important;
    color: var(--ctb-primary) !important;
    border: none !important;
    border-radius: var(--ctb-radius-md) !important;
    font-weight: 600 !important;
    display: flex !important;
    align-items: center !important;
    gap: var(--ctb-space-2) !important;
    transition: all var(--ctb-transition-base) !important;
    text-decoration: none !important;
    font-size: var(--ctb-text-base) !important;
    line-height: 1.5 !important;
    cursor: pointer !important;
}

.ctb-footer .newsletter-form .btn:hover {
    transform: translateX(4px);
    box-shadow: var(--ctb-shadow-lg);
    text-decoration: none;
}

.ctb-footer .newsletter-form .btn.btn-secondary {
    background: transparent !important;
    border: 2px solid white !important;
    color: var(--ctb-white) !important;
}

.ctb-footer .newsletter-form .btn.btn-secondary:hover {
    background: rgba(255, 255, 255, 0.1) !important;
    color: var(--ctb-white) !important;
    border-color: rgba(255, 255, 255, 0.8) !important;
}

.ctb-footer .newsletter-form .btn svg {
    width: 16px;
    height: 16px;
    transition: transform var(--ctb-transition-fast);
}

.ctb-footer .newsletter-form .btn:hover svg {
    transform: translateX(2px);
}

.ctb-footer .newsletter-privacy {
    font-size: var(--ctb-text-xs);
    color: rgba(255, 255, 255, 0.7);
    margin: 0;
    text-align: center;
}

.ctb-footer .newsletter-privacy a {
    color: var(--ctb-white);
    text-decoration: underline;
}

/* ========================================
   6. BOTTOM FOOTER
   ======================================== */

.footer-bottom {
    background: var(--ctb-gray-900);
    padding: var(--ctb-space-6) 0;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.footer-bottom-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.footer-legal {
    display: flex;
    align-items: center;
    gap: var(--ctb-space-6);
}

.footer-legal p {
    color: var(--ctb-gray-400);
    font-size: var(--ctb-text-sm);
    margin: 0;
}

.legal-links {
    display: flex;
    list-style: none;
    padding: 0;
    margin: 0;
    gap: var(--ctb-space-4);
}

.legal-links li {
    position: relative;
}

.legal-links li:not(:last-child)::after {
    content: '|';
    position: absolute;
    right: calc(var(--ctb-space-4) / -2);
    color: var(--ctb-gray-600);
}

.legal-links a {
    color: var(--ctb-gray-400);
    font-size: var(--ctb-text-sm);
    text-decoration: none;
    transition: color var(--ctb-transition-fast);
}

.legal-links a:hover {
    color: var(--ctb-primary);
}

/* Footer Credits */
.footer-credits {
    display: flex;
    align-items: center;
}

.footer-credits p {
    color: var(--ctb-gray-400);
    font-size: var(--ctb-text-sm);
    margin: 0;
}

.footer-credits span {
    color: var(--ctb-gray-500);
}

.footer-credits a {
    color: var(--ctb-primary);
    text-decoration: none;
    font-weight: 500;
    transition: opacity 0.3s ease;
}

.footer-credits a:hover {
    opacity: 0.8;
}

.footer-certifications {
    display: flex;
    gap: var(--ctb-space-4);
    align-items: center;
}

.footer-certifications img {
    height: 40px;
    width: auto;
    opacity: 0.6;
    transition: opacity var(--ctb-transition-fast);
}

.footer-certifications img:hover {
    opacity: 1;
}

/* ========================================
   7. BACK TO TOP BUTTON
   ======================================== */

.back-to-top {
    position: fixed;
    bottom: var(--ctb-space-6);
    right: var(--ctb-space-6);
    width: 48px;
    height: 48px;
    background: var(--ctb-primary);
    color: var(--ctb-white);
    border: none;
    border-radius: var(--ctb-radius-full);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    transition: all var(--ctb-transition-base);
    z-index: var(--ctb-z-fixed);
    box-shadow: var(--ctb-shadow-lg);
}

.back-to-top.visible {
    opacity: 1;
    visibility: visible;
}

.back-to-top:hover {
    background: var(--ctb-primary-dark);
    transform: translateY(-4px);
    box-shadow: var(--ctb-shadow-xl);
}

.back-to-top svg {
    width: 24px;
    height: 24px;
}

/* ========================================
   8. RESPONSIVE DESIGN
   ======================================== */

@media (max-width: 1280px) {
    .footer-grid {
        grid-template-columns: 2fr repeat(4, 1fr);
    }
    
    .footer-column:last-child {
        grid-column: span 2;
    }
}

@media (max-width: 1024px) {
    .footer-grid {
        grid-template-columns: 1fr 1fr 1fr;
        gap: var(--ctb-space-6);
    }
    
    .footer-company {
        grid-column: span 3;
        padding-right: 0;
        margin-bottom: var(--ctb-space-6);
        padding-bottom: var(--ctb-space-6);
        border-bottom: 1px solid var(--ctb-gray-200);
    }
    
    .ctb-footer .newsletter-content {
        display:flex;
        flex-direction:column;
        grid-template-columns: 1fr;
        gap: var(--ctb-space-4);
        text-align: center;
    }
}

@media (max-width: 768px) {
    .footer-main {
        padding: var(--ctb-space-12) 0 var(--ctb-space-10);
    }
    
    .footer-grid {
        grid-template-columns: 1fr;
        gap: var(--ctb-space-8);
    }
    
    .footer-company {
        grid-column: 1;
        margin-bottom: 0;
        padding-bottom: 0;
        border-bottom: none;
    }
    
    .footer-column {
        border-top: 1px solid var(--ctb-gray-200);
        padding-top: var(--ctb-space-6);
    }
    
    .footer-company {
        border-top: none;
        padding-top: 0;
    }
    
    .ctb-footer .newsletter-form .form-group {
        flex-direction: column;
        gap: var(--ctb-space-4);
    }
    
    .ctb-footer .newsletter-form .btn {
        width: 100%;
        justify-content: center;
        transform: none;
    }
    
    .ctb-footer .newsletter-form .btn:hover {
        transform: translateY(-2px);
    }
    
    .footer-bottom-content {
        flex-direction: column;
        gap: var(--ctb-space-4);
        text-align: center;
    }
    
    .footer-legal {
        flex-direction: column;
        gap: var(--ctb-space-3);
    }
    
    .legal-links {
        flex-wrap: wrap;
        justify-content: center;
    }

    .footer-credits {
        order: -1; /* Credits appear first on mobile */
    }
    
    .back-to-top {
        bottom: var(--ctb-space-4);
        right: var(--ctb-space-4);
        width: 40px;
        height: 40px;
    }
}

@media (max-width: 480px) {
    .footer-title {
        font-size: var(--ctb-text-lg);
    }
    
    .ctb-footer .newsletter-text h3 {
        font-size: var(--ctb-text-xl);
        line-height: 1.3;
    }
    
    .ctb-footer .newsletter-text p {
        font-size: var(--ctb-text-sm);
    }
    
    .legal-links li:not(:last-child)::after {
        display: none;
    }
    
    .legal-links {
        gap: var(--ctb-space-2);
    }
}

/* ========================================
   9. DARK MODE SUPPORT
   ======================================== */

@media (prefers-color-scheme: dark) {
    .ctb-footer {
        background: var(--ctb-gray-900);
    }
    
    .footer-main {
        background: var(--ctb-gray-800);
        border-top-color: var(--ctb-gray-700);
    }
    
    .footer-title {
        color: var(--ctb-white);
    }
    
    .footer-description,
    .footer-company-info,
    .footer-links a {
        color: var(--ctb-gray-400);
    }
    
    .footer-social a {
        background: var(--ctb-gray-700);
        color: var(--ctb-gray-300);
    }
    
    .footer-column {
        border-top-color: var(--ctb-gray-700);
    }
    
    .footer-bottom {
        background: var(--ctb-gray-900);
        border-top-color: var(--ctb-gray-700);
    }
}


/* =========================================
   carousel.css
   Lines: 443
   ========================================= */

/* =========================================
   CAROUSEL COMPONENT
   ========================================= 
   
   Full-featured carousel/slider with navigation and indicators.
   Used in: Demo pages, feature showcases, use case displays
   
   Structure:
   .carousel-wrapper
     .carousel-slides
       .carousel-slide[.active]
         .slide-background
         .slide-overlay
         .slide-content
           .slide-label
           .slide-title
           .slide-description
           .slide-tag
           a.btn
     button.carousel-nav.carousel-prev
     button.carousel-nav.carousel-next
     .carousel-indicators
       .indicator[.active]
   
   ========================================= */

/* ========== DESIGN TOKENS ========== */
:root {
    /* Colors */
    --carousel-overlay: rgba(0, 0, 0, 0.5);
    --carousel-nav-bg: rgba(255, 255, 255, 0.9);
    --carousel-nav-hover: #ffffff;
    --carousel-nav-icon: #1f2937;
    --carousel-indicator-bg: rgba(255, 255, 255, 0.4);
    --carousel-indicator-active: #ffffff;
    --carousel-text: #ffffff;
    
    /* Spacing */
    --carousel-nav-size: 48px;
    --carousel-nav-offset: 2rem;
    --carousel-indicator-size: 12px;
    --carousel-indicator-gap: 0.5rem;
    
    /* Animation */
    --carousel-transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1),
                          opacity 0.6s ease;
    --carousel-nav-transition: all 0.3s ease;
}

/* ========== CAROUSEL WRAPPER ========== */
.carousel-wrapper {
    position: relative;
    width: 100%;
    overflow: hidden;
    border-radius: 16px;
}

/* ========== SLIDES CONTAINER ========== */
.carousel-slides {
    position: relative;
    width: 100%;
    height: 600px; /* Default height */
    display: flex;
}

/* ========== INDIVIDUAL SLIDE ========== */
.carousel-slide {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    
    opacity: 0;
    visibility: hidden;
    transform: translateX(100%);
    
    transition: var(--carousel-transition);
}

.carousel-slide.active {
    opacity: 1;
    visibility: visible;
    transform: translateX(0);
    z-index: 1;
}

.carousel-slide.prev {
    transform: translateX(-100%);
}

/* ========== SLIDE BACKGROUND ========== */
.slide-background {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.slide-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: var(--carousel-overlay);
    z-index: 1;
}

/* ========== SLIDE CONTENT ========== */
.slide-content {
    position: relative;
    z-index: 2;
    height: 100%;
    
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    
    padding: 3rem 4rem;
    max-width: 720px;
    
    color: var(--carousel-text);
}

.slide-label {
    display: inline-block;
    padding: 0.5rem 1rem;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 20px;
    font-size: 0.875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 1rem;
    backdrop-filter: blur(4px);
}

.slide-title {
    font-size: 3rem;
    font-weight: 700;
    line-height: 1.2;
    margin: 0 0 1.5rem 0;
    color: var(--carousel-text);
}

.slide-description {
    font-size: 1.25rem;
    line-height: 1.6;
    margin: 0 0 1.5rem 0;
    color: rgba(255, 255, 255, 0.95);
}

.slide-tag {
    display: inline-block;
    padding: 0.375rem 0.875rem;
    background: rgba(59, 130, 246, 0.8);
    border-radius: 6px;
    font-size: 0.875rem;
    font-weight: 500;
    margin-bottom: 2rem;
}

/* ========== CAROUSEL NAVIGATION ========== */
.carousel-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    
    width: var(--carousel-nav-size);
    height: var(--carousel-nav-size);
    
    display: flex;
    align-items: center;
    justify-content: center;
    
    background: var(--carousel-nav-bg);
    color: var(--carousel-nav-icon);
    
    border: none;
    border-radius: 50%;
    cursor: pointer;
    
    transition: var(--carousel-nav-transition);
    backdrop-filter: blur(8px);
}

.carousel-prev {
    left: var(--carousel-nav-offset);
}

.carousel-next {
    right: var(--carousel-nav-offset);
}

.carousel-nav:hover {
    background: var(--carousel-nav-hover);
    transform: translateY(-50%) scale(1.1);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
}

.carousel-nav:active {
    transform: translateY(-50%) scale(0.95);
}

.carousel-nav:focus {
    outline: 2px solid #ffffff;
    outline-offset: 4px;
}

.carousel-nav svg {
    width: 24px;
    height: 24px;
}

.carousel-nav:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}

.carousel-nav:disabled:hover {
    transform: translateY(-50%) scale(1);
}

/* ========== CAROUSEL INDICATORS ========== */
.carousel-indicators {
    position: absolute;
    bottom: 2rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: 10;
    
    display: flex;
    gap: var(--carousel-indicator-gap);
    align-items: center;
    
    padding: 0.75rem 1.25rem;
    background: rgba(0, 0, 0, 0.3);
    border-radius: 24px;
    backdrop-filter: blur(8px);
}

.indicator {
    width: var(--carousel-indicator-size);
    height: var(--carousel-indicator-size);
    
    background: var(--carousel-indicator-bg);
    border-radius: 50%;
    cursor: pointer;
    
    transition: all 0.3s ease;
}

.indicator:hover {
    background: rgba(255, 255, 255, 0.6);
    transform: scale(1.2);
}

.indicator.active {
    background: var(--carousel-indicator-active);
    width: 32px;
    border-radius: 6px;
}

/* ========== VARIANTS ========== */

/* Compact carousel */
.carousel-compact .carousel-slides {
    height: 450px;
}

.carousel-compact .slide-content {
    padding: 2rem 3rem;
}

.carousel-compact .slide-title {
    font-size: 2.25rem;
}

.carousel-compact .slide-description {
    font-size: 1.125rem;
}

/* Full height carousel */
.carousel-fullheight .carousel-slides {
    height: 100vh;
    max-height: 900px;
}

/* Auto-height carousel */
.carousel-autoheight .carousel-slides {
    height: auto;
    
}

/* ========== RESPONSIVE ========== */

@media (max-width: 1024px) {
    :root {
        --carousel-nav-size: 44px;
        --carousel-nav-offset: 1.5rem;
    }
    
    .carousel-slides {
        height: 550px;
    }
    
    .slide-content {
        padding: 2.5rem 3rem;
        max-width: 600px;
    }
    
    .slide-title {
        font-size: 2.5rem;
    }
    
    .slide-description {
        font-size: 1.125rem;
    }
}

@media (max-width: 768px) {
    :root {
        --carousel-nav-size: 40px;
        --carousel-nav-offset: 1rem;
        --carousel-indicator-size: 10px;
    }
    
    .carousel-slides {
        height: 500px;
    }
    
    .slide-content {
        padding: 2rem;
        max-width: 100%;
    }
    
    .slide-title {
        font-size: 2rem;
    }
    
    .slide-description {
        font-size: 1rem;
    }
    
    .slide-label,
    .slide-tag {
        font-size: 0.8125rem;
    }
    
    .carousel-indicators {
        bottom: 1.5rem;
        padding: 0.5rem 1rem;
    }
}

@media (max-width: 480px) {
    :root {
        --carousel-nav-size: 36px;
        --carousel-nav-offset: 0.75rem;
    }
    
    .carousel-slides {
        height: 450px;
    }
    
    .slide-content {
        padding: 1.5rem;
    }
    
    .slide-title {
        font-size: 1.75rem;
        margin-bottom: 1rem;
    }
    
    .slide-description {
        font-size: 0.9375rem;
        margin-bottom: 1rem;
    }
    
    .slide-label {
        padding: 0.375rem 0.75rem;
        font-size: 0.75rem;
        margin-bottom: 0.75rem;
    }
    
    .slide-tag {
        padding: 0.25rem 0.625rem;
        font-size: 0.75rem;
        margin-bottom: 1.5rem;
    }
    
    .carousel-nav svg {
        width: 20px;
        height: 20px;
    }
    
    .indicator.active {
        width: 24px;
    }
}

/* ========== ACCESSIBILITY ========== */

@media (prefers-reduced-motion: reduce) {
    .carousel-slide,
    .carousel-nav,
    .indicator {
        transition: none;
    }
}

/* Focus visible for keyboard navigation */
.carousel-nav:focus-visible {
    outline: 3px solid #3b82f6;
    outline-offset: 4px;
}

.indicator:focus-visible {
    outline: 2px solid #ffffff;
    outline-offset: 3px;
}

/* High contrast mode */
@media (prefers-contrast: high) {
    .slide-overlay {
        background: rgba(0, 0, 0, 0.7);
    }
    
    .carousel-nav {
        border: 2px solid var(--carousel-nav-icon);
    }
    
    .indicator {
        border: 2px solid #ffffff;
    }
}



/* =========================================
   case-study-card.css
   Lines: 317
   ========================================= */

/* =========================================
   CASE STUDY CARD COMPONENT
   ========================================= 
   
   Card component for showcasing case studies and success stories.
   Used in: Audience pages, use cases, resources
   
   Structure:
   .case-studies-grid (container)
     .case-study-card
       img
       .case-study-content
         .case-study-type (badge)
         h3 (title)
         p (description)
         a.learn-more (CTA)
   
   ========================================= */

/* ========== DESIGN TOKENS ========== */
:root {
    /* Colors */
    --case-study-bg: #ffffff;
    --case-study-border: #e5e7eb;
    --case-study-text: #212121;
    --case-study-text-secondary: #666666;
    --case-study-badge-bg: #e3f2fd;
    --case-study-badge-text: #1976d2;
    --case-study-link: #00BCD4;
    --case-study-link-hover: #00ACC1;
    
    /* Shadows */
    --case-study-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
    --case-study-shadow-hover: 0 20px 40px rgba(0, 0, 0, 0.15);
    
    /* Spacing */
    --case-study-padding: 30px;
    --case-study-gap: 2rem;
    
    /* Image */
    --case-study-image-height: 250px;
    
    /* Border */
    --case-study-border-radius: 12px;
    --case-study-badge-radius: 4px;
    
    /* Animation */
    --case-study-transition: all 0.3s ease;
}

/* ========== GRID CONTAINER ========== */
.case-studies-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: var(--case-study-gap);
    margin-top: 3.75rem; /* 60px */
}

/* ========== CARD BASE ========== */
.case-study-card {
    background: var(--case-study-bg);
    border-radius: var(--case-study-border-radius);
    overflow: hidden;
    box-shadow: var(--case-study-shadow);
    transition: var(--case-study-transition);
    
    display: flex;
    flex-direction: column;
    height: 100%;
}

.case-study-card:hover {
    transform: translateY(-10px);
    box-shadow: var(--case-study-shadow-hover);
}

.case-study-card:focus-within {
    outline: 2px solid #3b82f6;
    outline-offset: 2px;
}

/* ========== IMAGE ========== */
.case-study-card img {
    width: 100%;
    height: var(--case-study-image-height);
    object-fit: cover;
    display: block;
}

/* ========== CONTENT ========== */
.case-study-content {
    padding: var(--case-study-padding);
    display: flex;
    flex-direction: column;
    flex: 1;
}

/* Type Badge */
.case-study-type {
    display: inline-block;
    align-self: flex-start;
    
    padding: 6px 12px;
    
    background: var(--case-study-badge-bg);
    color: var(--case-study-badge-text);
    
    border-radius: var(--case-study-badge-radius);
    
    font-size: 0.75rem; /* 12px */
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    
    margin-bottom: 0.75rem; /* 12px */
}

/* Title */
.case-study-content h3 {
    font-size: 1.5rem; /* 24px */
    font-weight: 700;
    color: var(--case-study-text);
    line-height: 1.3;
    margin: 0 0 0.75rem 0; /* 12px */
}

/* Description */
.case-study-content p {
    font-size: 1rem; /* 16px */
    line-height: 1.6;
    color: var(--case-study-text-secondary);
    margin: 0 0 1.25rem 0; /* 20px */
    flex: 1;
}

/* CTA Link */
.case-study-content .learn-more {
    color: var(--case-study-link);
    text-decoration: none;
    font-weight: 600;
    font-size: 1rem; /* 16px */
    transition: color 0.2s ease;
    
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: auto;
}

.case-study-content .learn-more:hover {
    color: var(--case-study-link-hover);
}

.case-study-content .learn-more:focus {
    outline: 2px solid var(--case-study-link);
    outline-offset: 2px;
    border-radius: 2px;
}

/* ========== VARIANTS ========== */

/* Compact variant */
.case-study-card-compact {
    --case-study-padding: 20px;
    --case-study-image-height: 200px;
}

.case-study-card-compact .case-study-content h3 {
    font-size: 1.25rem; /* 20px */
}

.case-study-card-compact .case-study-content p {
    font-size: 0.9375rem; /* 15px */
}

/* Large variant */
.case-study-card-large {
    --case-study-image-height: 320px;
    --case-study-padding: 40px;
}

.case-study-card-large .case-study-content h3 {
    font-size: 1.875rem; /* 30px */
}

/* Horizontal variant */
.case-study-card-horizontal {
    flex-direction: row;
}

.case-study-card-horizontal img {
    width: 40%;
    height: auto;
    min-height: 100%;
}

.case-study-card-horizontal .case-study-content {
    width: 60%;
}

/* Badge color variants */
.case-study-type-residential {
    background: #e3f2fd;
    color: #1976d2;
}

.case-study-type-commercial {
    background: #f3e5f5;
    color: #7b1fa2;
}

.case-study-type-industrial {
    background: #fff3e0;
    color: #f57c00;
}

.case-study-type-infrastructure {
    background: #e8f5e9;
    color: #388e3c;
}

.case-study-type-energy {
    background: #fff9c4;
    color: #f57f17;
}

.case-study-type-documentation {
    background: #e0f2f1;
    color: #00897b;
}

/* ========== RESPONSIVE ========== */

@media (max-width: 1024px) {
    .case-studies-grid {
        grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
        gap: 1.5rem;
    }
}

@media (max-width: 768px) {
    :root {
        --case-study-padding: 24px;
        --case-study-image-height: 220px;
        --case-study-gap: 1.5rem;
    }
    
    .case-studies-grid {
        grid-template-columns: 1fr;
        margin-top: 2.5rem;
    }
    
    .case-study-content h3 {
        font-size: 1.375rem; /* 22px */
    }
    
    .case-study-card:hover {
        transform: translateY(-5px);
    }
    
    /* Horizontal becomes vertical on mobile */
    .case-study-card-horizontal {
        flex-direction: column;
    }
    
    .case-study-card-horizontal img {
        width: 100%;
        height: var(--case-study-image-height);
    }
    
    .case-study-card-horizontal .case-study-content {
        width: 100%;
    }
}

@media (max-width: 480px) {
    :root {
        --case-study-padding: 20px;
        --case-study-image-height: 200px;
    }
    
    .case-study-content h3 {
        font-size: 1.25rem; /* 20px */
    }
    
    .case-study-content p {
        font-size: 0.9375rem; /* 15px */
    }
    
    .case-study-type {
        font-size: 0.6875rem; /* 11px */
        padding: 5px 10px;
    }
}

/* ========== ACCESSIBILITY ========== */

@media (prefers-reduced-motion: reduce) {
    .case-study-card,
    .case-study-content .learn-more {
        transition: none;
    }
    
    .case-study-card:hover {
        transform: none;
    }
}

@media (prefers-contrast: high) {
    .case-study-card {
        border: 2px solid var(--case-study-border);
    }
    
    .case-study-type {
        border: 1px solid currentColor;
    }
}



/* =========================================
   comparison-table.css
   Lines: 356
   ========================================= */

/* ========================================
   COMPARISON TABLE - MODERN DESIGN
   ======================================== */
.ctb-comparison-section {
    padding: 80px 0;
    background: linear-gradient(to bottom, #FFFFFF, #F8FAFB);
    position: relative;
    overflow: hidden;
}

.ctb-comparison-section::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -10%;
    width: 600px;
    height: 600px;
    background: radial-gradient(circle, rgba(0, 188, 212, 0.05) 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
}

.comparison-container {
    
    margin: 0 auto;
    padding: 0 20px;
    position: relative;
    z-index: 1;
}

/* Header */
.comparison-header {
    text-align: center;
    margin-bottom: 60px;
}

.comparison-title {
    font-size: 42px;
    font-weight: 700;
    color: #1A1A1A;
    margin-bottom: 16px;
    background: linear-gradient(135deg, #1A1A1A 0%, #00BCD4 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.comparison-subtitle {
    font-size: 18px;
    color: #666;
    max-width: 600px;
    margin: 0 auto;
    line-height: 1.6;
}

/* Desktop Table */
.comparison-table-wrapper {
    background: white;
    border-radius: 20px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.08);
    overflow: hidden;
    border: 1px solid rgba(0, 188, 212, 0.1);
}

.comparison-table {
    width: 100%;
    border-collapse: collapse;
}

/* Table Header */
.comparison-table thead th {
    padding: 30px 20px;
    background: #FAFBFC;
    font-weight: 600;
    font-size: 16px;
    color: #1A1A1A;
    text-align: center;
    position: relative;
    border-bottom: 2px solid #E5E7EB;
}

.comparison-table thead th.feature-col {
    text-align: left;
    width: 40%;
    background: white;
}

.comparison-table thead th.featured {
    background: linear-gradient(135deg, #00BCD4 0%, #00ACC1 100%);
    color: white;
    font-size: 18px;
    position: relative;
}

.column-badge {
    position: absolute;
    top: 8px;
    left: 50%;
    transform: translateX(-50%);
    background: white;
    color: #00BCD4;
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.5px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

/* Table Body */
.feature-row {
    transition: all 0.3s ease;
    position: relative;
}

.feature-row:hover {
    background: rgba(0, 188, 212, 0.02);
}

.feature-row td {
    padding: 20px;
    border-bottom: 1px solid #F3F4F6;
    vertical-align: middle;
}

/* Feature Cell */
.feature-name-cell {
    font-weight: 500;
    color: #1A1A1A;
}

.feature-info {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.feature-name {
    font-size: 15px;
    line-height: 1.4;
}

.feature-badge {
    background: linear-gradient(135deg, #00BCD4, #00ACC1);
    color: white;
    padding: 3px 10px;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 600;
    white-space: nowrap;
    animation: pulse 2s infinite;
}

@keyframes pulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.05); }
}

.tooltip-icon {
    color: #9CA3AF;
    cursor: help;
    font-size: 14px;
}

/* Value Cells */
.value-cell {
    text-align: center;
    position: relative;
}

.value-cell.featured {
    background: rgba(0, 188, 212, 0.03);
}

.icon-wrapper {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    transition: all 0.3s ease;
}

.icon-wrapper.check {
    background: rgba(0, 188, 212, 0.1);
}

.icon-wrapper.times {
    background: rgba(255, 82, 82, 0.1);
}

.icon-wrapper.partial {
    background: rgba(255, 193, 7, 0.1);
}

.icon-wrapper:hover {
    transform: scale(1.1);
}

/* Summary Row */
.summary-row {
    background: #F9FAFB;
}

.summary-row td {
    padding: 30px 20px;
    border: none;
}

.summary-cell.featured {
    background: linear-gradient(135deg, rgba(0, 188, 212, 0.05), rgba(0, 188, 212, 0.02));
}

.summary-content {
    text-align: center;
}

.summary-content strong {
    display: block;
    font-size: 14px;
    color: #6B7280;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 8px;
}

.summary-content p {
    font-size: 15px;
    color: #1A1A1A;
    margin-bottom: 16px;
    line-height: 1.5;
}

.comparison-cta-btn {
    display: inline-block;
    padding: 12px 30px;
    background: linear-gradient(135deg, #00BCD4, #00ACC1);
    color: white;
    text-decoration: none;
    border-radius: 30px;
    font-weight: 600;
    font-size: 14px;
    transition: all 0.3s ease;
    box-shadow: 0 4px 15px rgba(0, 188, 212, 0.3);
}

.comparison-cta-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 188, 212, 0.4);
}

/* Mobile Cards */
.mobile-only {
    display: none;
}

.desktop-only {
    display: block;
}

/* Responsive */
@media (max-width: 768px) {
    .mobile-only {
        display: block;
    }
    
    .desktop-only {
        display: none;
    }
    
    .comparison-cards {
        display: flex;
        flex-direction: column;
        gap: 20px;
    }
    
    .comparison-card {
        background: white;
        border-radius: 16px;
        padding: 24px;
        box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
        position: relative;
    }
    
    .comparison-card.featured {
        border: 2px solid #00BCD4;
        background: linear-gradient(to bottom, white, rgba(0, 188, 212, 0.02));
    }
    
    .card-badge {
        position: absolute;
        top: -10px;
        right: 20px;
        background: linear-gradient(135deg, #00BCD4, #00ACC1);
        color: white;
        padding: 4px 12px;
        border-radius: 20px;
        font-size: 11px;
        font-weight: 700;
    }
    
    .card-title {
        font-size: 20px;
        font-weight: 700;
        margin-bottom: 20px;
        color: #1A1A1A;
    }
    
    .card-features {
        display: flex;
        flex-direction: column;
        gap: 12px;
        margin-bottom: 20px;
    }
    
    .card-feature {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 10px 0;
        border-bottom: 1px solid #F3F4F6;
    }
    
    .comparison-title {
        font-size: 32px;
    }
    
    .comparison-subtitle {
        font-size: 16px;
    }
}

/* Animations */
.feature-row {
    opacity: 0;
    animation: fadeInUp 0.5s ease forwards;
}

.feature-row:nth-child(1) { animation-delay: 0.1s; }
.feature-row:nth-child(2) { animation-delay: 0.15s; }
.feature-row:nth-child(3) { animation-delay: 0.2s; }
.feature-row:nth-child(4) { animation-delay: 0.25s; }
.feature-row:nth-child(5) { animation-delay: 0.3s; }

@keyframes fadeInUp {
    to {
        opacity: 1;
        transform: translateY(0);
    }
    from {
        opacity: 0;
        transform: translateY(20px);
    }
}


/* =========================================
   comparison.css
   Lines: 505
   ========================================= */

  :root {
            --primary: #004aad;
            --secondary: #1561B2;
            --accent: #E6FBFF;
            --white: #ffffff;
            --black: #000000;
            --text-dark: #2c3e50;
            --success: #28a745;
            --warning: #ffc107;
            --error: #dc3545;
            --bg-light: #f8f9fa;
            --border-light: rgba(0, 74, 173, 0.1);
            --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.08);
            --shadow-md: 0 4px 16px rgba(0, 0, 0, 0.12);
            --shadow-lg: 0 8px 32px rgba(0, 0, 0, 0.16);
        }

        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        body {
            font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
            line-height: 1.6;
            color: var(--text-dark);
        }

        .comparison-section {
            padding: 4rem 0;
        }

        .container {
            
            margin: 0 auto;
            padding: 0 1.5rem;
        }

        /* Header - consistente con section-header */
        .section-header {
            text-align: center;
            margin-bottom: 2.5rem;
        }

        .section-title {
            font-size: clamp(1.5rem, 3vw, 2rem);
            font-weight: 700;
            color: var(--text-dark);
            margin-bottom: 0.5rem;
        }

        .section-subtitle {
            font-size: 1rem;
            color: var(--text-dark);
            opacity: 0.8;
            max-width: 550px;
            margin: 0 auto;
        }

        /* Main Container */
        .comparison-container {
            background: var(--white);
            border-radius: 12px;
            box-shadow: var(--shadow-sm);
            overflow: hidden;
            margin-bottom: 2rem;
            transition: all 0.3s ease;
        }

        .comparison-container:hover {
            box-shadow: var(--shadow-md);
        }

        /* Controls - estilo minimalista */
        .comparison-controls {
            padding: 1.5rem;
            border-bottom: 1px solid var(--border-light);
            background: var(--bg-light);
        }

        .control-group {
            display: flex;
            justify-content: space-between;
            align-items: center;
            flex-wrap: wrap;
            gap: 1rem;
        }

        .view-modes {
            display: flex;
            gap: 0.25rem;
            background: var(--white);
            padding: 0.25rem;
            border-radius: 8px;
            border: 1px solid var(--border-light);
        }

        .mode-btn {
            padding: 0.5rem 1rem;
            background: transparent;
            border: none;
            color: var(--text-dark);
            border-radius: 6px;
            font-weight: 500;
            font-size: 0.875rem;
            cursor: pointer;
            transition: all 0.2s ease;
        }

        .mode-btn.active,
        .mode-btn:hover {
            background: var(--primary);
            color: var(--white);
        }

        .zoom-controls {
            display: flex;
            align-items: center;
            gap: 0.75rem;
        }

        .zoom-btn {
            width: 36px;
            height: 36px;
            border: 1px solid var(--border-light);
            background: var(--white);
            color: var(--text-dark);
            border-radius: 6px;
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            transition: all 0.2s ease;
        }

        .zoom-btn:hover {
            background: var(--primary);
            color: var(--white);
            border-color: var(--primary);
        }

        .zoom-level {
            font-weight: 600;
            color: var(--text-dark);
            font-size: 0.875rem;
            min-width: 60px;
            text-align: center;
        }

        /* Slider - diseño limpio */
        .before-after-slider {
            position: relative;
            width: 100%;
            height: 500px;
            overflow: hidden;
            cursor: grab;
            user-select: none;
        }

        .before-after-slider:active {
            cursor: grabbing;
        }

        .slider-image {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-size: cover;
            background-position: center;
        }

        .before-image {
            z-index: 1;
        }

        .after-image {
            z-index: 2;
            clip-path: polygon(50% 0%, 100% 0%, 100% 100%, 50% 100%);
        }

        /* Handle minimalista */
        .slider-handle {
            position: absolute;
            top: 0;
            left: 50%;
            transform: translateX(-50%);
            width: 2px;
            height: 100%;
            background: var(--white);
            z-index: 10;
            cursor: ew-resize;
            box-shadow: 0 0 8px rgba(0, 0, 0, 0.2);
        }

        .slider-button {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            width: 48px;
            height: 48px;
            background: var(--white);
            border-radius: 50%;
            box-shadow: var(--shadow-md);
            display: flex;
            align-items: center;
            justify-content: center;
            color: var(--text-dark);
            transition: all 0.3s ease;
            border: 1px solid var(--border-light);
        }

        .slider-button:hover {
            transform: translate(-50%, -50%) scale(1.05);
            box-shadow: var(--shadow-lg);
        }

        .slider-button::before {
            content: '↔';
            font-weight: 600;
            font-size: 1rem;
        }

        /* Labels minimalistas */
        .image-labels {
            position: absolute;
            top: 1rem;
            left: 0;
            right: 0;
            display: flex;
            justify-content: space-between;
            padding: 0 1rem;
            z-index: 5;
        }

        .label {
            background: rgba(0, 0, 0, 0.8);
            color: var(--white);
            padding: 0.5rem 1rem;
            border-radius: 6px;
            font-weight: 500;
            font-size: 0.875rem;
            backdrop-filter: blur(8px);
        }

        .label.before {
            background: rgba(0, 74, 173, 0.9);
        }

        .label.after {
            background: rgba(21, 97, 178, 0.9);
        }

        /* Hotspots rediseñados */
        .hotspot {
            position: absolute;
            width: 16px;
            height: 16px;
            border-radius: 50%;
            background: var(--error);
            border: 2px solid var(--white);
            cursor: pointer;
            z-index: 15;
            transition: all 0.3s ease;
            box-shadow: var(--shadow-sm);
        }

        .hotspot:hover {
            transform: scale(1.2);
            box-shadow: var(--shadow-md);
        }

        .hotspot.tolerance-ok {
            background: var(--success);
        }

        .hotspot.tolerance-warning {
            background: var(--warning);
        }

        .hotspot.tolerance-error {
            background: var(--error);
        }

        /* Tooltip minimalista */
        .tooltip {
            position: absolute;
            bottom: 120%;
            left: 50%;
            transform: translateX(-50%);
            background: var(--white);
            color: var(--text-dark);
            padding: 1rem;
            border-radius: 8px;
            min-width: 200px;
            box-shadow: var(--shadow-lg);
            opacity: 0;
            visibility: hidden;
            transition: all 0.3s ease;
            z-index: 20;
            border: 1px solid var(--border-light);
        }

        .tooltip::after {
            content: '';
            position: absolute;
            top: 100%;
            left: 50%;
            transform: translateX(-50%);
            border: 8px solid transparent;
            border-top-color: var(--white);
        }

        .hotspot:hover .tooltip {
            opacity: 1;
            visibility: visible;
        }

        .tooltip-title {
            font-weight: 700;
            margin-bottom: 0.5rem;
            color: var(--text-dark);
            font-size: 0.875rem;
        }

        .tooltip-title.ok {
            color: var(--success);
        }

        .tooltip-title.warning {
            color: var(--warning);
        }

        .tooltip-title.error {
            color: var(--error);
        }

        .tooltip-value {
            font-size: 0.8rem;
            margin-bottom: 0.25rem;
            opacity: 0.8;
        }

        /* Stats - estilo card consistente */
        .comparison-stats {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
            gap: 1rem;
            margin-top: 2rem;
        }

        .stat-card {
            background: var(--white);
            padding: 1.5rem;
            border-radius: 8px;
            box-shadow: var(--shadow-sm);
            text-align: center;
            transition: all 0.3s ease;
            border: 1px solid transparent;
        }

        .stat-card:hover {
            transform: translateY(-2px);
            box-shadow: var(--shadow-md);
            border-color: var(--border-light);
        }

        .stat-icon {
            width: 48px;
            height: 48px;
            background: var(--accent);
            border-radius: 8px;
            display: flex;
            align-items: center;
            justify-content: center;
            margin: 0 auto 1rem;
            color: var(--primary);
            font-size: 1.25rem;
        }

        .stat-value {
            font-size: 1.5rem;
            font-weight: 700;
            color: var(--primary);
            margin-bottom: 0.25rem;
        }

        .stat-label {
            font-size: 0.875rem;
            color: var(--text-dark);
            font-weight: 500;
            opacity: 0.8;
        }

        /* Analysis Details */
        .analysis-details {
            background: var(--white);
            border-radius: 12px;
            box-shadow: var(--shadow-sm);
            padding: 2rem;
            margin-top: 2rem;
        }

        .details-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
            gap: 2rem;
        }

        .detail-section h4 {
            font-weight: 700;
            color: var(--text-dark);
            margin-bottom: 1rem;
            display: flex;
            align-items: center;
            gap: 0.5rem;
            font-size: 1.125rem;
        }

        .detail-section h4 i {
            color: var(--primary);
        }

        .detail-list {
            list-style: none;
        }

        .detail-list li {
            padding: 0.75rem 0;
            border-bottom: 1px solid var(--border-light);
            display: flex;
            justify-content: space-between;
            align-items: center;
            font-size: 0.875rem;
        }

        .detail-list li:last-child {
            border-bottom: none;
        }

        .status-indicator {
            padding: 0.25rem 0.75rem;
            border-radius: 20px;
            font-size: 0.75rem;
            font-weight: 600;
        }

        .status-ok {
            background: var(--accent);
            color: var(--success);
        }

        .status-warning {
            background: rgba(255, 193, 7, 0.1);
            color: var(--warning);
        }

        .status-error {
            background: rgba(220, 53, 69, 0.1);
            color: var(--error);
        }

        /* Responsive */
        @media (max-width: 768px) {
            .control-group {
                flex-direction: column;
                align-items: stretch;
            }

            .view-modes {
                justify-content: center;
            }

            .before-after-slider {
                height: 300px;
            }

            .slider-button {
                width: 40px;
                height: 40px;
            }

            .comparison-stats {
                grid-template-columns: repeat(2, 1fr);
            }

            .details-grid {
                grid-template-columns: 1fr;
            }

            .tooltip {
                min-width: 150px;
                font-size: 0.8rem;
                padding: 0.8rem;
            }
        }

        @media (max-width: 480px) {
            .comparison-stats {
                grid-template-columns: 1fr;
            }
        }


/* =========================================
   demo-container.css
   Lines: 372
   ========================================= */

/**
 * CheckToBuild - Demo Container System
 * Platform demo wrapper base para features
 * 
 * @package CheckToBuild
 * @since 2.0.0
 */

/* ===========================
   DEMO SECTION BASE
   =========================== */

.landing-demo-section,
.demo-section {
    background: var(--bg-white);
    padding: var(--space-16) 0;
}

/* ===========================
   SECTION HEADER
   =========================== */

.section-header {
    text-align: center;
    max-width: 800px;
    margin: 0 auto var(--space-12);
}

.section-title {
    font-size: clamp(1.75rem, 3.5vw, 2.5rem);
    font-weight: var(--font-weight-bold);
    color: var(--text-dark);
    margin-bottom: var(--space-4);
    line-height: var(--line-height-tight);
}

.section-subtitle {
    font-size: clamp(1rem, 2vw, 1.15rem);
    color: var(--text-medium);
    line-height: var(--line-height-relaxed);
}

/* ===========================
   PLATFORM DEMO WRAPPER
   =========================== */

.platform-demo-wrapper,
.demo-wrapper {
    background: var(--bg-lighter);
    border-radius: var(--border-radius-xl);
    overflow: hidden;
    box-shadow: var(--shadow-xl);
    border: 1px solid var(--border-light);
}

/* ===========================
   DEMO HEADER
   =========================== */



.demo-title {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-semibold);
    color: var(--white);
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.demo-title::before {
    content: '';
    width: 12px;
    height: 12px;
    background: var(--success);
    border-radius: 50%;
    display: inline-block;
    box-shadow: 0 0 8px var(--success);
    animation: pulse 2s ease-in-out infinite;
}

@keyframes pulse {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: 0.5;
    }
}

/* ===========================
   DEMO BADGES
   =========================== */

.demo-badges {
    display: flex;
    gap: var(--space-2);
    flex-wrap: wrap;
}

.demo-badge {
    background: rgba(255, 255, 255, 0.1);
    color: var(--white);
    padding: var(--space-1) var(--space-3);
    border-radius: var(--border-radius-pill);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-semibold);
    text-transform: uppercase;
    letter-spacing: var(--letter-spacing-wide);
    backdrop-filter: blur(10px);
}

/* ===========================
   DEMO BODY
   =========================== */

.demo-body {
    display: grid;
    grid-template-columns: 300px 1fr;
    min-height: 600px;
    background: var(--bg-white);
}

/* ===========================
   DEMO SIDEBAR
   =========================== */

.demo-sidebar {
    background: var(--bg-light);
    border-right: 1px solid var(--border-light);
    padding: var(--space-6);
    overflow-y: auto;
}

.demo-sidebar-section {
    margin-bottom: var(--space-6);
}

.demo-sidebar-section:last-child {
    margin-bottom: 0;
}

.demo-sidebar-title {
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-bold);
    color: var(--text-medium);
    text-transform: uppercase;
    letter-spacing: var(--letter-spacing-widest);
    margin-bottom: var(--space-3);
}

.demo-sidebar-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.demo-sidebar-item {
    padding: var(--space-2) var(--space-3);
    border-radius: var(--border-radius-sm);
    cursor: pointer;
    transition: all var(--transition-base);
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin-bottom: var(--space-1);
}

.demo-sidebar-item:hover {
    background: var(--bg-white);
}

.demo-sidebar-item.active {
    background: var(--primary);
    color: var(--white);
}

.demo-sidebar-item .icon {
    font-size: var(--font-size-lg);
    width: 24px;
    text-align: center;
}

.demo-sidebar-item .label {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    flex: 1;
}

.demo-sidebar-item .count {
    font-size: var(--font-size-xs);
    background: rgba(0, 0, 0, 0.1);
    padding: 2px 8px;
    border-radius: var(--border-radius-pill);
    font-weight: var(--font-weight-semibold);
}

.demo-sidebar-item.active .count {
    background: rgba(255, 255, 255, 0.2);
}

/* ===========================
   DEMO CANVAS
   =========================== */

.demo-canvas {
    position: relative;
    background: var(--bg-white);
    padding: var(--space-6);
    overflow: hidden;
}

.demo-canvas-wrapper {
    width: 100%;
    height: 100%;
    
    position: relative;
}

/* ===========================
   DEMO CONTROLS
   =========================== */

.demo-controls {
    background: var(--bg-light);
    border-top: 1px solid var(--border-light);
    padding: var(--space-4) var(--space-6);
    display: flex;
    gap: var(--space-4);
    align-items: center;
    flex-wrap: wrap;
}

.demo-control-group {
    display: flex;
    gap: var(--space-2);
    align-items: center;
}

.demo-control-label {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    color: var(--text-medium);
}

/* ===========================
   PROJECT INFO
   =========================== */

.project-info {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: var(--space-4);
    padding: var(--space-4);
    background: var(--accent);
    border-radius: var(--border-radius-md);
    margin-bottom: var(--space-4);
}

.project-info-item {
    text-align: center;
}

.project-info-label {
    font-size: var(--font-size-xs);
    color: var(--text-medium);
    text-transform: uppercase;
    letter-spacing: var(--letter-spacing-wide);
    margin-bottom: var(--space-1);
}

.project-info-value {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-bold);
    color: var(--primary);
}

/* ===========================
   RESPONSIVE DEMO
   =========================== */

@media (max-width: 992px) {
    .demo-body {
        grid-template-columns: 250px 1fr;
    }
    
    .demo-sidebar {
        padding: var(--space-4);
    }
}

@media (max-width: 768px) {
    .landing-demo-section,
    .demo-section {
        padding: var(--space-12) 0;
    }
    
    .section-header {
        margin-bottom: var(--space-8);
    }
    
    .section-title {
        font-size: clamp(1.5rem, 5vw, 2rem);
    }
    
    .demo-body {
        grid-template-columns: 1fr;
        min-height: auto;
    }
    
    .demo-sidebar {
        border-right: none;
        border-bottom: 1px solid var(--border-light);
        max-height: 300px;
    }
    
    .demo-header {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--space-3);
    }
    
    .demo-badges {
        width: 100%;
    }
    
    .demo-canvas {
        padding: var(--space-4);
    }
    
    .demo-canvas-wrapper {
        min-height: 400px;
    }
    
    .demo-controls {
        flex-direction: column;
        align-items: stretch;
    }
    
    .project-info {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--space-3);
    }
}

@media (max-width: 480px) {
    .demo-header {
        padding: var(--space-3) var(--space-4);
    }
    
    .demo-title {
        font-size: var(--font-size-base);
    }
    
    .demo-canvas-wrapper {
        min-height: 300px;
    }
    
    .project-info {
        grid-template-columns: 1fr;
    }
}

/* ===========================
   ANIMATIONS
   =========================== */

@media (prefers-reduced-motion: reduce) {
    .demo-title::before {
        animation: none;
    }
}



/* =========================================
   demo-containers.css
   Lines: 369
   ========================================= */

/**
 * CheckToBuild - Demo Containers
 * Componentes para demos interactivos (3D, AI, etc.)
 * 
 * @package CheckToBuild
 * @since 2.0.0
 */

/* ===========================
   DEMO 3D WRAPPER
   =========================== */

.demo-3d-wrapper {
    position: relative;
    width: 100%;
    min-height: 400px;
    background: #f5f7fa;
    border-radius: var(--border-radius-lg);
    overflow: hidden;
}

.demo-3d-controls {
    position: absolute;
    top: 1rem;
    left: 1rem;
    z-index: 10;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.demo-3d-info {
    position: absolute;
    bottom: 1rem;
    left: 1rem;
    background: rgba(255, 255, 255, 0.95);
    padding: 0.75rem 1rem;
    border-radius: 8px;
    box-shadow: var(--shadow-md);
    font-size: 0.875rem;
    z-index: 10;
}

/* ===========================
   AI DEMO BUTTONS
   =========================== */

.btn-ai-demo {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.5rem;
    background: linear-gradient(135deg, var(--primary) 0%, #2563eb 100%);
    color: var(--white);
    border: none;
    border-radius: 8px;
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s;
    box-shadow: 0 4px 12px rgba(0, 188, 212, 0.3);
}

.btn-ai-demo:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(0, 188, 212, 0.4);
}

.btn-ai-demo:active {
    transform: translateY(0);
}

.btn-ai-demo i {
    font-size: 1rem;
}

.btn-ai-demo.loading {
    pointer-events: none;
    opacity: 0.8;
}

.btn-ai-demo.loading::after {
    content: '';
    width: 14px;
    height: 14px;
    border: 2px solid var(--white);
    border-top-color: transparent;
    border-radius: 50%;
    animation: spin 0.6s linear infinite;
    margin-left: 0.5rem;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

/* ===========================
   PROCESS STEPS
   =========================== */

.process-steps {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.process-step {
    display: flex;
    gap: 1rem;
    padding: 1.5rem;
    background: var(--bg-white);
    border-radius: var(--border-radius-lg);
    
    transition: all 0.3s;
}

.process-step:hover {
    transform: translateX(4px);
    box-shadow: var(--shadow-card);
}

.process-step-number {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--primary);
    color: var(--white);
    border-radius: 50%;
    font-weight: 700;
    font-size: 1.125rem;
}

.process-step-content {
    flex: 1;
}

.process-step-title {
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--text-dark);
    margin-bottom: 0.5rem;
}

.process-step-description {
    font-size: 0.9375rem;
    color: var(--text-medium);
    line-height: var(--line-height-relaxed);
}

.process-step.active {
    border-left-color: var(--success);
    background: var(--accent);
}

.process-step.active .process-step-number {
    background: var(--success);
}

.process-step.completed .process-step-number {
    background: var(--success);
}

.process-step.completed .process-step-number::after {
    content: '✓';
}

/* ===========================
   DEMO CONTROLS
   =========================== */

.demo-controls {
    display: flex;
    gap: 0.5rem;
    padding: 1rem;
    background: var(--bg-white);
    border-radius: var(--border-radius-md);
    box-shadow: var(--shadow-sm);
}

.demo-control-btn {
    padding: 0.5rem 1rem;
    background: var(--bg-light);
    color: var(--text-dark);
    border: 1px solid var(--border-light);
    border-radius: 6px;
    font-size: 0.875rem;
    cursor: pointer;
    transition: all 0.2s;
}

.demo-control-btn:hover {
    background: var(--primary);
    color: var(--white);
    border-color: var(--primary);
}

.demo-control-btn.active {
    background: var(--primary);
    color: var(--white);
    border-color: var(--primary);
}

/* ===========================
   INTERACTIVE SLIDER
   =========================== */

.slider {
    width: 100%;
    position: relative;
}

.slider-track {
    width: 100%;
    height: 6px;
    background: var(--bg-light);
    border-radius: 3px;
    position: relative;
}

.slider-progress {
    height: 100%;
    background: var(--primary);
    border-radius: 3px;
    transition: width 0.2s;
}

.slider-handle {
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 20px;
    height: 20px;
    background: var(--white);
    border: 3px solid var(--primary);
    border-radius: 50%;
    cursor: pointer;
    transition: all 0.2s;
}

.slider-handle:hover {
    transform: translate(-50%, -50%) scale(1.2);
    box-shadow: 0 0 0 6px rgba(0, 188, 212, 0.2);
}

.slider-labels {
    display: flex;
    justify-content: space-between;
    margin-top: 0.5rem;
    font-size: 0.75rem;
    color: var(--text-medium);
}

/* ===========================
   TOLERANCE SELECTOR
   =========================== */

.tolerance-selector {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.tol-btn {
    padding: 0.5rem 1rem;
    background: var(--bg-white);
    color: var(--text-dark);
    border: 2px solid var(--border-light);
    border-radius: 8px;
    font-size: 0.875rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s;
}

.tol-btn:hover {
    border-color: var(--primary);
    transform: translateY(-2px);
}

.tol-btn.active {
    background: var(--primary);
    color: var(--white);
    border-color: var(--primary);
}

/* ===========================
   MEP SYSTEM BUTTONS
   =========================== */

.mep-system-btn {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1rem;
    background: var(--bg-white);
    border: 2px solid var(--border-light);
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.2s;
}

.mep-system-btn:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-sm);
}

.mep-system-btn.active {
    border-color: var(--primary);
    background: var(--accent);
}

.mep-system-btn .mep-icon {
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
}

.mep-system-btn.electrical .mep-icon { background: var(--mep-electrical); }
.mep-system-btn.plumbing .mep-icon { background: var(--mep-plumbing); }
.mep-system-btn.hvac .mep-icon { background: var(--mep-hvac); }
.mep-system-btn.fire .mep-icon { background: var(--mep-fire); }

/* ===========================
   RESPONSIVE - Demo Containers
   =========================== */

@media (max-width: 768px) {
    .demo-3d-wrapper {
        min-height: 300px;
    }
    
    .process-step {
        flex-direction: column;
        padding: 1rem;
    }
    
    .process-step-number {
        width: 32px;
        height: 32px;
        font-size: 1rem;
    }
    
    .demo-controls {
        flex-wrap: wrap;
    }
    
    .tolerance-selector {
        justify-content: center;
    }
}

@media (max-width: 480px) {
    .btn-ai-demo {
        width: 100%;
        justify-content: center;
    }
    
    .demo-3d-controls {
        position: static;
        flex-direction: row;
        padding: 0.5rem;
    }
}



/* =========================================
   floating-cards.css
   Lines: 162
   ========================================= */

/**
 * FLOATING CARDS COMPONENT - Sistema Base Modular
 * Tarjetas flotantes animadas para hero sections
 * Reutilizable en múltiples hero sections
 * UPDATED: 2025-10-29 - Diseño unificado moderno
 */

/* ============================================
   HERO VISUAL CONTAINER
   ============================================ */

.hero-visual {
    flex: 1;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* ============================================
   FLOATING CARDS CONTAINER
   ============================================ */

.floating-cards {
    position: relative;
    width: 100%;
    height: 100%;
    
}

/* ============================================
   INDIVIDUAL CARDS
   ============================================ */

.float-card {
    position: absolute;
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(10px);
    border-radius: 12px;
    padding: 12px 16px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    font-weight: 600;
    color: #2c3e50;
    animation: float 6s ease-in-out infinite;
    z-index: 10;
    white-space: nowrap;
    transition: transform 0.3s ease;
}

.float-card:hover {
    transform: translateY(-10px) !important;
    box-shadow: var(--shadow-2xl);
}

.float-card .icon {
    font-size: 18px;
    background: none !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    display: inline-block !important;
    line-height: 1;
    text-decoration: none !important;
    color: inherit !important;
    width: auto !important;
    height: auto !important;
    border-radius: 0 !important;
    justify-content: initial !important;
    align-items: initial !important;
}

/* ============================================
   CARD POSITIONS
   ============================================ */

.float-card.card-1 {
    top: 15%;
    left: 5%;
    animation-delay: 0s;
}

.float-card.card-2 {
    bottom: 25%;
    left: 8%;
    animation-delay: 2s;
}

.float-card.card-3 {
    bottom: 10%;
    right: 8%;
    animation-delay: 4s;
}

.float-card.card-4 {
    bottom: 15%;
    right: 10%;
    animation-delay: 1.5s;
}

/* ============================================
   ANIMATIONS
   ============================================ */

@keyframes float {
    0%, 100% {
        transform: translateY(0px);
    }
    50% {
        transform: translateY(-15px);
    }
}

/* ============================================
   RESPONSIVE
   ============================================ */

@media (max-width: 768px) {
    .hero-visual {
        margin-top: var(--spacing-6);
    }
    
    .floating-cards {
        min-height: 300px;
    }
    
    .float-card {
        padding: var(--spacing-3);
        gap: var(--spacing-2);
    }
    
    .float-card .icon {
        width: 45px;
        height: 45px;
        font-size: var(--font-size-2xl);
    }
    
    /* Ajustar posiciones en mobile */
    .float-card.card-1 {
        top: 5%;
        left: 5%;
    }
    
    .float-card.card-2 {
        top: 25%;
        right: 5%;
    }
    
    .float-card.card-3 {
        bottom: 25%;
        left: 5%;
    }
    
    .float-card.card-4 {
        bottom: 5%;
        right: 5%;
    }
}



/* =========================================
   use-cases.css
   Lines: 128
   ========================================= */

/**
 * USE CASES COMPONENT - Sistema Base Modular
 * Grid de casos de uso con íconos y beneficios
 * Reutilizable en múltiples landing pages
 */

/* ============================================
   USE CASES SECTION
   ============================================ */

.landing-use-cases-section {
    padding: var(--spacing-12) 0;
    background: white;
}

/* ============================================
   USE CASES GRID
   ============================================ */

.use-cases-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: var(--spacing-6);
    margin-top: var(--spacing-8);
}

/* ============================================
   USE CASE CARD
   ============================================ */

.use-case-card {
    background: white;
    border: 2px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: var(--spacing-6);
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-4);
}

.use-case-card:hover {
    border-color: var(--color-primary);
    transform: translateY(-8px);
    box-shadow: var(--shadow-xl);
}

/* ============================================
   USE CASE ICON
   ============================================ */

.use-case-icon {
    width: 70px;
    height: 70px;
    background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--font-size-3xl);
    margin-bottom: var(--spacing-2);
}

/* ============================================
   USE CASE CONTENT
   ============================================ */

.use-case-title {
    font-size: var(--font-size-xl);
    font-weight: 700;
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-2);
}

.use-case-description {
    font-size: var(--font-size-base);
    color: var(--color-text-secondary);
    line-height: 1.6;
    margin-bottom: var(--spacing-4);
}

/* ============================================
   USE CASE BENEFITS
   ============================================ */

.use-case-benefits {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-2);
}

.use-case-benefits li {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    font-size: var(--font-size-sm);
    color: var(--color-text-primary);
}

.use-case-benefits i {
    color: #10b981;
    font-size: var(--font-size-base);
}

/* ============================================
   RESPONSIVE
   ============================================ */

@media (max-width: 768px) {
    .landing-use-cases-section {
        padding: var(--spacing-8) 0;
    }
    
    .use-cases-grid {
        grid-template-columns: 1fr;
        gap: var(--spacing-4);
    }
    
    .use-case-card {
        padding: var(--spacing-5);
    }
    
    .use-case-icon {
        width: 60px;
        height: 60px;
        font-size: var(--font-size-2xl);
    }
}



/* =========================================
   viewer-3d.css
   Lines: 435
   ========================================= */

/**
 * CheckToBuild - 3D Viewer System
 * Sistema modular para visualizadores 3D, BIM y Point Cloud
 * 
 * @package CheckToBuild
 * @since 2.0.0
 */

/* ===========================
   PLATFORM INTERFACE - 3D Viewer Container
   =========================== */

.platform-interface {
    height: 400px;
    background: #f5f7fa;
    display: flex;
    position: relative;
}

.interface-sidebar {
    width: 180px;
    background: var(--white);
    padding: 1rem;
    border-right: 1px solid var(--border-light);
    overflow-y: auto;
    flex-shrink: 0;
}

.interface-viewer {
    flex: 1;
    position: relative;
    background-color: #e8ecf0;
    overflow: hidden;
}

/* ===========================
   SIDEBAR SYSTEM - Layers & Controls
   =========================== */

.sidebar-section {
    margin-bottom: 1rem;
}

.sidebar-title {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--text-dark);
    opacity: 0.6;
    margin-bottom: 0.5rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.sidebar-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem;
    font-size: 0.8rem;
    border-radius: 4px;
    cursor: pointer;
    transition: background 0.2s;
}

.sidebar-item:hover,
.sidebar-item.active {
    background: var(--accent);
}

.sidebar-item i {
    font-size: 0.75rem;
}

/* Layer items */
.layer-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem;
    font-size: 0.8rem;
    border-radius: 4px;
    cursor: pointer;
    transition: background 0.2s;
}

.layer-item:hover,
.layer-item.active {
    background: var(--accent);
}

.layer-item .layer-checkbox {
    width: 14px;
    height: 14px;
}

/* Legend items */
.legend-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.4rem;
    font-size: 0.75rem;
    color: var(--text-dark);
}

.legend-item .legend-color {
    width: 12px;
    height: 12px;
    border-radius: 3px;
    flex-shrink: 0;
}

/* ===========================
   BIM ELEMENTS - 3D Objects
   =========================== */

.bim-elements-container {
    position: relative;
    width: 100%;
    height: 100%;
}

.bim-element {
    position: absolute;
    border: 2px solid;
    cursor: pointer;
    transition: all 0.2s;
    background: rgba(255, 255, 255, 0.8);
}

.bim-element:hover {
    transform: scale(1.05);
    z-index: 10;
    box-shadow: var(--shadow-md);
}

/* BIM Element States */
.bim-element.critical {
    border-color: var(--error);
    background: rgba(220, 53, 69, 0.1);
    animation: pulse-critical 2s infinite;
}

.bim-element.warning {
    border-color: var(--warning);
    background: rgba(255, 193, 7, 0.1);
}

.bim-element.success {
    border-color: var(--success);
    background: rgba(40, 167, 69, 0.1);
}

@keyframes pulse-critical {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.7; }
}

/* ===========================
   ELEMENT LABELS - Tooltips
   =========================== */

.element-label {
    position: absolute;
    background: rgba(0, 0, 0, 0.8);
    color: var(--white);
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    font-size: 0.65rem;
    white-space: nowrap;
    opacity: 0;
    transition: opacity 0.2s;
    pointer-events: none;
    z-index: 20;
}

.bim-element:hover .element-label {
    opacity: 1;
}

/* ===========================
   TOLERANCE INDICATORS
   =========================== */


.tolerance-indicator .label {
    font-weight: 600;
    color: var(--text-dark);
    margin-bottom: 0.25rem;
}

.tolerance-indicator .value {
    font-size: 0.9rem;
    font-weight: 700;
}

.tolerance-indicator .value.success { color: var(--success); }
.tolerance-indicator .value.warning { color: var(--warning); }
.tolerance-indicator .value.error { color: var(--error); }

/* Measure points */
.measure-point {
    position: absolute;
    width: 10px;
    height: 10px;
    background: var(--primary);
    border: 2px solid var(--white);
    border-radius: 50%;
    cursor: pointer;
    transition: all 0.2s;
    z-index: 15;
}

.measure-point:hover {
    transform: scale(1.3);
    box-shadow: 0 0 0 4px rgba(0, 188, 212, 0.2);
}

/* ===========================
   NAVIGATION CONTROLS
   =========================== */

.nav-controls {
    position: absolute;
    bottom: 10px;
    right: 10px;
    display: flex;
    gap: 0.25rem;
    z-index: 10;
}

.nav-btn {
    width: 32px;
    height: 32px;
    background: var(--white);
    color: var(--primary);
    border: 1px solid var(--border-light);
    border-radius: 6px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
    font-size: 0.875rem;
}

.nav-btn:hover {
    background: var(--primary);
    color: var(--white);
}

.nav-btn:active {
    transform: scale(0.95);
}

/* Camera controls */
.camera-btn {
    width: 36px;
    height: 36px;
    background: var(--white);
    color: var(--primary);
    border: 1px solid var(--border-light);
    border-radius: 8px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
    font-size: 1rem;
}

.camera-btn:hover {
    background: var(--primary);
    color: var(--white);
    transform: translateY(-2px);
}

/* ===========================
   COMPARISON SLIDER
   =========================== */

.comparison-slider {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.comparison-slider .before,
.comparison-slider .after {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.comparison-slider .before {
    z-index: 1;
}

.comparison-slider .after {
    z-index: 2;
    clip-path: inset(0 50% 0 0);
}

.comparison-slider .slider-handle {
    position: absolute;
    top: 0;
    left: 50%;
    width: 4px;
    height: 100%;
    background: var(--white);
    cursor: ew-resize;
    z-index: 10;
    transform: translateX(-50%);
}

.comparison-slider .slider-handle::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 40px;
    height: 40px;
    background: var(--white);
    border-radius: 50%;
    transform: translate(-50%, -50%);
    box-shadow: var(--shadow-md);
}

/* ===========================
   RESULT ITEMS
   =========================== */

.result-item {
    background: var(--bg-white);
    padding: 1rem;
    border-radius: 8px;
    border: 1px solid var(--border-light);
    transition: all 0.2s;
}

.result-item:hover {
    border-color: var(--primary);
    box-shadow: var(--shadow-sm);
}

.result-item .result-label {
    font-size: 0.8rem;
    color: var(--text-medium);
    margin-bottom: 0.25rem;
}

.result-item .result-value {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--text-dark);
}

.result-item .result-value.success { color: var(--success); }
.result-item .result-value.warning { color: var(--warning); }
.result-item .result-value.error { color: var(--error); }

/* ===========================
   RESPONSIVE - 3D Viewer
   =========================== */

@media (max-width: 768px) {
    .platform-interface {
        height: 350px;
        flex-direction: column;
    }
    
    .interface-sidebar {
        width: 100%;
        max-height: 120px;
        border-right: none;
        border-bottom: 1px solid var(--border-light);
        display: flex;
        gap: 1rem;
        overflow-x: auto;
        overflow-y: hidden;
    }
    
    .sidebar-section {
        min-width: 150px;
        margin-bottom: 0;
    }
    
    .tolerance-indicator {
        top: 5px;
        right: 5px;
        padding: 0.35rem;
        font-size: 0.7rem;
    }
    
    .nav-controls {
        bottom: 5px;
        right: 5px;
    }
    
    .nav-btn,
    .camera-btn {
        width: 28px;
        height: 28px;
        font-size: 0.75rem;
    }
}

@media (max-width: 480px) {
    .platform-interface {
        height: 300px;
    }
    
    .interface-sidebar {
        max-height: 100px;
        padding: 0.75rem;
    }
    
    .sidebar-item,
    .layer-item {
        font-size: 0.75rem;
        padding: 0.4rem;
    }
    
    .bim-element {
        border-width: 1px;
    }
    
    .element-label {
        font-size: 0.6rem;
        padding: 0.2rem 0.4rem;
    }
}



/* =========================================
   video-background.css
   Lines: 151
   ========================================= */

/**
 * VIDEO BACKGROUND COMPONENT
 * Fondos de video elegantes para hero sections
 * Inspirado en el estilo moderno de homepage
 * 
 * @package CheckToBuild
 * @since 2.0.0
 */

/* ===========================
   VIDEO BACKGROUND CONTAINER
   =========================== */

.hero-video-wrapper {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    border-radius: var(--border-radius-lg, 12px);
}


/* ===========================
   VIDEO ELEMENT
   =========================== */

.hero-video {
    position: absolute;
    top: 50%;
    left: 50%;
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    transform: translateX(-50%) translateY(-50%);
    object-fit: cover;
    z-index: 0;
    transition: transform 0.3s ease;
}

/* ===========================
   HERO WITH VIDEO BACKGROUND
   =========================== */

.hero-with-video {
    position: relative;
    overflow: hidden;
    background: var(--primary, #004aad);
    color: var(--white, #ffffff);
    padding: var(--space-20, 5rem) 0 0;
    min-height: 70vh;
    display: flex;
    align-items: center;
}

.hero-with-video .container {
    position: relative;
    z-index: 2;
}

/* ===========================
   MODERN GRID LAYOUT
   =========================== */

.hero-with-video .hero-content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-12, 3rem);
    align-items: center;
    max-width: var(--container-max-width, 1200px);
    margin: 0 auto;
    padding: var(--space-8, 2rem) 0;
}

.hero-with-video .hero-text {
    max-width: 600px;
}

.hero-with-video .hero-title {
    font-family: var(--font-family-base, 'Inter', sans-serif);
    font-size: clamp(2.5rem, 5vw, 4rem);
    font-weight: var(--font-weight-bold, 700);
    line-height: var(--line-height-tight, 1.1);
    color: var(--white, #ffffff);
    margin-bottom: var(--space-6, 1.5rem);
    letter-spacing: var(--letter-spacing-tight, -0.025em);
}

.hero-with-video .hero-subtitle {
    font-size: var(--font-size-lg, 1.125rem);
    line-height: var(--line-height-after-title, 1.6);
    color: rgba(255, 255, 255, 0.9);
    margin-bottom: var(--space-8, 2rem);
    font-family: var(--font-family-secondary, 'Inter', sans-serif);
    max-width: 500px;
}

/* ===========================
   RESPONSIVE DESIGN
   =========================== */

@media (max-width: 768px) {
    .hero-with-video .hero-content {
        grid-template-columns: 1fr;
        gap: var(--space-8, 2rem);
        text-align: center;
    }
    
    .hero-with-video {
        padding: var(--space-12, 3rem) 0;
        min-height: 60vh;
    }
    
    .hero-video-wrapper {
        border-radius: 0;
    }
}

@media (max-width: 480px) {
    .hero-with-video .hero-title {
        font-size: clamp(1.75rem, 8vw, 2.5rem);
    }
    
    .hero-with-video .hero-subtitle {
        font-size: var(--font-size-base, 1rem);
    }
    
    .hero-with-video {
        padding: var(--space-8, 2rem) 0;
    }
}

/* ===========================
   ACCESSIBILITY
   =========================== */

@media (prefers-reduced-motion: reduce) {
    .hero-video {
        transform: translateX(-50%) translateY(-50%) scale(1.1);
        transition: none;
    }
    
    .hero-video-wrapper::before {
        animation: none;
    }
}


/* =========================================
   hero-video.css
   Lines: 44
   ========================================= */

/* Shared Hero Video wrapper styles */
.hero-video-wrapper {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  z-index: 0;
}

.hero-video {
  position: absolute;
  top: 50%;
  left: 50%;
  min-width: 100%;
  min-height: 100%;
  width: auto;
  height: auto;
  transform: translate(-50%, -50%);
  object-fit: cover;
  opacity: 0.75;
}

.hero-overlay {
  position: absolute;
  inset: 0;
  background: #000000db;
  pointer-events: none;
}

/* Ensure hero content appears above video */
.hero-section, .landing-hero-section, .quality-hero, .floor-flatness-hero, .progress-tracking-hero, .viewer-3d-hero {
  position: relative;
}

.hero-section > .container,
.landing-hero-section > .container,
.quality-hero > .container,
.floor-flatness-hero > .container,
.progress-tracking-hero > .container,
.viewer-3d-hero > .container {
  position: relative;
  z-index: 1;
}



/* =========================================
   roi-calculator.css
   Lines: 145
   ========================================= */

/* ROI Calculator - neutral, elegant, aligned with global tokens */
.roi-calculator {
    padding: var(--ctb-space-16) 0;
}

.roi-calculator .calculator-content {
    
    margin: 0 auto;
    padding: 0 var(--ctb-space-6);
}

/* Header */
.roi-calculator .calculator-header { text-align: center; margin-bottom: var(--ctb-space-8);padding-top: 6rem; }

.roi-calculator .calculator-title {
    font-family: var(--ctb-font-heading);
    font-size: clamp(1.75rem, 3.5vw, 2.25rem);
    font-weight: 800;
    color: var(--ctb-gray-900);
    margin-bottom: var(--ctb-space-2);
}

.roi-calculator .calculator-subtitle {
    font-size: var(--ctb-text-base);
    color: var(--ctb-gray-700);
    max-width: 680px;
    margin: 0 auto;
}

/* Main Container */
.roi-calculator .calculator-container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--ctb-space-10);
    margin-bottom: var(--ctb-space-16);
}

/* Two card sections */
.roi-calculator .calculator-inputs,
.roi-calculator .calculator-results {
    background: var(--ctb-white);
    border: 1px solid var(--ctb-gray-200);
    border-radius: var(--ctb-radius-2xl);
    box-shadow: var(--ctb-shadow-sm);
    padding: var(--ctb-space-8);
}

.roi-calculator .roi-section-title {
    font-family: var(--ctb-font-heading);
    font-size: var(--ctb-text-xl);
    font-weight: 700;
    color: var(--ctb-gray-900);
    display: flex;
    align-items: center;
    gap: var(--ctb-space-2);
    margin-bottom: var(--ctb-space-6);
}

.roi-calculator .roi-section-title i { color: var(--ctb-gray-900); }

/* Input Styles */
.roi-calculator .input-group { margin-bottom: var(--ctb-space-6); }

.roi-calculator .input-label {
    display: block;
    font-size: var(--ctb-text-sm);
    font-weight: 600;
    color: var(--ctb-gray-700);
    margin-bottom: var(--ctb-space-2);
}

.roi-calculator .input-field {
    width: 100%;
    padding: var(--ctb-space-3) var(--ctb-space-4);
    border: 1px solid var(--ctb-gray-300);
    border-radius: var(--ctb-radius-md);
    font-size: var(--ctb-text-base);
    background: var(--ctb-white);
    color: var(--ctb-gray-900);
    transition: all var(--ctb-transition-fast);
}

.roi-calculator .input-field:focus {
    outline: 0;
    border-color: var(--ctb-gray-700);
    box-shadow: 0 0 0 3px rgba(26, 26, 26, 0.08);
}

.roi-calculator .input-row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--ctb-space-4); }

/* Slider - minimalist neutral */
.roi-calculator .slider { width: 100%; height: 6px; border-radius: 3px; background: var(--ctb-gray-300); outline: none; -webkit-appearance: none; appearance: none; margin: var(--ctb-space-3) 0; }
.roi-calculator .slider::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 18px; height: 18px; border-radius: 50%; background: var(--ctb-gray-900); cursor: pointer; border: 2px solid var(--ctb-white); box-shadow: var(--ctb-shadow-sm); transition: transform var(--ctb-transition-fast); }
.roi-calculator .slider::-webkit-slider-thumb:hover { transform: scale(1.05); }
.roi-calculator .slider::-moz-range-thumb { width: 18px; height: 18px; border-radius: 50%; background: var(--ctb-gray-900); cursor: pointer; border: 2px solid var(--ctb-white); box-shadow: var(--ctb-shadow-sm); }
.roi-calculator .slider-value { text-align: center; margin-top: var(--ctb-space-2); font-weight: 600; color: var(--ctb-gray-700); }
.roi-calculator .slider-value span { color: var(--ctb-gray-900); font-size: var(--ctb-text-lg); font-weight: 700; }

/* Results */
.roi-calculator .results-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--ctb-space-4); margin-bottom: var(--ctb-space-6); }
.roi-calculator .result-card { padding: var(--ctb-space-6); background: var(--ctb-gray-100); border-radius: var(--ctb-radius-lg); transition: transform var(--ctb-transition-base), box-shadow var(--ctb-transition-base); border: 1px solid var(--ctb-gray-200); }
.roi-calculator .result-card:hover { background: var(--ctb-white); transform: translateY(-2px); box-shadow: var(--ctb-shadow-sm); }
.roi-calculator .result-value { font-family: var(--ctb-font-heading); font-size: clamp(1.5rem, 3vw, 2rem); font-weight: 800; color: var(--ctb-gray-900); margin-bottom: var(--ctb-space-1); line-height: 1.2; }
.roi-calculator .result-label { font-size: var(--ctb-text-sm); color: var(--ctb-gray-700); font-weight: 600; }

/* Savings breakdown */
.roi-calculator .savings-breakdown { margin-top: var(--ctb-space-8); padding-top: var(--ctb-space-6); border-top: 1px solid var(--ctb-gray-200); }
.roi-calculator .savings-breakdown h4 { font-family: var(--ctb-font-heading); font-size: var(--ctb-text-lg); font-weight: 700; color: var(--ctb-gray-900); margin-bottom: var(--ctb-space-3); display: flex; align-items: center; gap: var(--ctb-space-2); }
.roi-calculator .savings-breakdown h4 i { color: var(--ctb-gray-900); }
.roi-calculator .breakdown-item { display: flex; justify-content: space-between; align-items: center; padding: var(--ctb-space-3) var(--ctb-space-4); margin-bottom: var(--ctb-space-2); background: var(--ctb-gray-100); border-radius: var(--ctb-radius-md); border-left: 4px solid var(--ctb-gray-300); transition: transform var(--ctb-transition-base), box-shadow var(--ctb-transition-base), background var(--ctb-transition-base); }
.roi-calculator .breakdown-item:hover { background: var(--ctb-white); transform: translateX(4px); box-shadow: var(--ctb-shadow-sm); }
.roi-calculator .breakdown-label { font-weight: 600; color: var(--ctb-gray-700); }
.roi-calculator .breakdown-value { font-weight: 800; color: var(--ctb-gray-900); font-size: var(--ctb-text-lg); }

/* Progress */
.roi-calculator .progress-section { margin-top: var(--ctb-space-6); }
.roi-calculator .progress-item { margin-bottom: var(--ctb-space-4); }
.roi-calculator .progress-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: var(--ctb-space-2); }
.roi-calculator .progress-header span { font-weight: 600; color: var(--ctb-gray-700); font-size: var(--ctb-text-sm); }
.roi-calculator .highlight-number { font-weight: 800; color: var(--ctb-gray-900); font-size: var(--ctb-text-sm); background: var(--ctb-gray-100); padding: 0.25rem 0.5rem; border-radius: var(--ctb-radius-full); }
.roi-calculator .progress-bar { width: 100%; height: 6px; background: var(--ctb-gray-300); border-radius: 3px; overflow: hidden; }
.roi-calculator .progress-fill { height: 100%; background: var(--ctb-gray-700); border-radius: 3px; transition: width 800ms cubic-bezier(0.4, 0, 0.2, 1); }

/* CTA */
.roi-calculator .cta-section { background: var(--ctb-gray-100); padding: var(--ctb-space-12) var(--ctb-space-8); border-radius: var(--ctb-radius-2xl); text-align: center; color: var(--ctb-gray-900); }
.roi-calculator .cta-title { font-family: var(--ctb-font-heading); font-size: clamp(1.5rem, 3vw, 2rem); font-weight: 800; margin-bottom: var(--ctb-space-2);color:#000; }
.roi-calculator .cta-subtitle { font-size: var(--ctb-text-base); color: var(--ctb-gray-700); margin-bottom: var(--ctb-space-6); max-width: 700px; margin-left: auto; margin-right: auto; }
.roi-calculator .roi-btn { display: inline-flex; align-items: center; justify-content: center; padding: var(--ctb-space-3) var(--ctb-space-6); border-radius: var(--ctb-radius-md); text-decoration: none; font-weight: 600; transition: all var(--ctb-transition-base); }
.roi-calculator .roi-btn-primary { background: var(--ctb-primary); color: var(--ctb-white); }
.roi-calculator .roi-btn-primary:hover { transform: translateY(-2px); box-shadow: var(--ctb-shadow-lg); }

/* Subtle animation */
.roi-calculator .calculator-inputs, .roi-calculator .calculator-results { animation: roiFadeInUp 0.5s ease both; }
.roi-calculator .calculator-results { animation-delay: 120ms; }
@keyframes roiFadeInUp { from { opacity: 0; transform: translateY(16px);} to { opacity: 1; transform: translateY(0);} }

/* Responsive */
@media (max-width: 768px) {
    .roi-calculator .calculator-container { grid-template-columns: 1fr; gap: var(--ctb-space-6); }
    .roi-calculator .results-grid { grid-template-columns: 1fr; }
    .roi-calculator .input-row { grid-template-columns: 1fr; }
    .roi-calculator .cta-section { padding: var(--ctb-space-8) var(--ctb-space-6); }
    .roi-calculator .breakdown-item { flex-direction: column; align-items: flex-start; gap: var(--ctb-space-2); }
}
        


/* =========================================
   analysis-panel.css
   Lines: 178
   ========================================= */

/**
 * ANALYSIS PANEL COMPONENT - Sistema Base Modular
 * Panel de análisis con tabs y métricas
 * Reutilizable en múltiples features (floor-flatness, mep-validation, etc.)
 */

/* ============================================
   ANALYSIS PANEL CONTAINER
   ============================================ */

.analysis-panel {
    background: white;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    padding: var(--spacing-6);
    margin-top: var(--spacing-8);
}

/* ============================================
   ANALYSIS TABS
   ============================================ */

.analysis-tabs {
    display: flex;
    gap: var(--spacing-2);
    margin-bottom: var(--spacing-6);
    flex-wrap: wrap;
}

.analysis-tab {
    padding: var(--spacing-3) var(--spacing-5);
    background: none;
    border: none;
    border-bottom: 3px solid transparent;
    color: var(--color-text-secondary);
    font-weight: 600;
    font-size: var(--font-size-base);
    cursor: pointer;
    transition: all 0.2s ease;
    white-space: nowrap;
}

.analysis-tab:hover {
    color: var(--color-primary);
    background: var(--color-surface);
}

.analysis-tab.active {
    color: var(--color-primary);
}

/* ============================================
   ANALYSIS CONTENT
   ============================================ */

.analysis-content {
    display: none;
}

.analysis-content.active {
    animation: fadeIn 0.3s ease;
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

/* ============================================
   ANALYSIS GRID
   ============================================ */

.analysis-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: var(--spacing-6);
}

.analysis-group {
    background: var(--color-surface);
    padding: var(--spacing-5);
    border-radius: var(--radius-md);
}

.analysis-title {
    font-size: var(--font-size-lg);
    font-weight: 700;
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-4);
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
}

.analysis-title i {
    color: var(--color-primary);
    font-size: var(--font-size-xl);
}

/* ============================================
   METRIC ROWS
   ============================================ */

.metric-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--spacing-3) 0;
    border-bottom: 1px solid var(--color-border);
}

.metric-row:last-child {
    border-bottom: none;
}

.metric-label {
    font-weight: 500;
    color: var(--color-text-secondary);
    font-size: var(--font-size-sm);
}

.metric-value {
    font-weight: 700;
    color: var(--color-text-primary);
    font-size: var(--font-size-base);
    font-family: 'Courier New', monospace;
}

/* Metric Value States */
.metric-value.success {
    color: #10b981;
}

.metric-value.warning {
    color: #f59e0b;
}

.metric-value.error {
    color: #ef4444;
}

.metric-value.info {
    color: #3b82f6;
}

/* ============================================
   RESPONSIVE
   ============================================ */

@media (max-width: 768px) {
    .analysis-panel {
        padding: var(--spacing-4);
    }
    
    .analysis-tabs {
        gap: var(--spacing-1);
    }
    
    .analysis-tab {
        padding: var(--spacing-2) var(--spacing-3);
        font-size: var(--font-size-sm);
    }
    
    .analysis-grid {
        grid-template-columns: 1fr;
        gap: var(--spacing-4);
    }
    
    .analysis-group {
        padding: var(--spacing-4);
    }
    
    .metric-row {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--spacing-1);
    }
}



/* =========================================
   progress-dynamic.css
   Lines: 72
   ========================================= */

/**
 * Progress Tracking Dynamic Styles
 * CSS utilities for handling dynamic progress values without inline styles
 */

/* Progress Item Color Utilities */
.progress-item[data-color="#28a745"] {
    border-left: 3px solid #28a745;
}

.progress-item[data-color="#ffc107"] {
    border-left: 3px solid #ffc107;
}

.progress-item[data-color="#dc3545"] {
    border-left: 3px solid #dc3545;
}

.progress-item i[data-color="#28a745"] {
    color: #28a745;
}

.progress-item i[data-color="#ffc107"] {
    color: #ffc107;
}

.progress-item i[data-color="#dc3545"] {
    color: #dc3545;
}

/* Progress Width Animation Classes */
.progress-mini-fill,
.gantt-bar,
.progress-fill {
    transition: width 0.8s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: width;
}

/* Gantt Bar States */
.gantt-bar.completed {
    background: linear-gradient(90deg, #28a745 0%, #20c997 100%);
}

.gantt-bar.in-progress {
    background: linear-gradient(90deg, #007bff 0%, #17a2b8 100%);
}

.gantt-bar.planned {
    background: linear-gradient(90deg, #6c757d 0%, #adb5bd 100%);
}

/* Progressive Enhancement - CSS Custom Properties for Dynamic Values */
.progress-mini-fill[data-width] {
    width: calc(var(--progress-width, 0) * 1%);
}

.gantt-bar[data-width] {
    width: calc(var(--progress-width, 0) * 1%);
}

.progress-fill[data-width] {
    width: calc(var(--progress-width, 0) * 1%);
}

/* Accessibility improvements */
@media (prefers-reduced-motion: reduce) {
    .progress-mini-fill,
    .gantt-bar,
    .progress-fill {
        transition: none;
    }
}


/* =========================================
   material-colors.css
   Lines: 129
   ========================================= */

/**
 * CheckToBuild - Material Colors & Variables
 * Variables de colores para materiales de construcción
 * 
 * @package CheckToBuild
 * @since 2.0.0
 */

/* ===========================
   MATERIAL COLORS - Construction Materials
   =========================== */

:root {
    /* Steel colors */
    --steel-primary: #4a5568;
    --steel-secondary: #718096;
    --steel-light: #a0aec0;
    --steel-dark: #2d3748;
    
    /* Concrete colors */
    --concrete-primary: #a0aec0;
    --concrete-secondary: #cbd5e0;
    --concrete-light: #e2e8f0;
    --concrete-dark: #718096;
    
    /* Rebar/Reinforcement */
    --rebar-color: #e53e3e;
    --rebar-light: #fc8181;
    --rebar-dark: #c53030;
    
    /* MEP Systems */
    --mep-electrical: #fbbf24;
    --mep-plumbing: #3b82f6;
    --mep-hvac: #10b981;
    --mep-fire: #ef4444;
    
    /* Quality/Tolerance states */
    --tolerance-excellent: #10b981;
    --tolerance-good: #22c55e;
    --tolerance-acceptable: #fbbf24;
    --tolerance-poor: #f97316;
    --tolerance-critical: #ef4444;
}

/* ===========================
   MATERIAL-SPECIFIC UTILITIES
   =========================== */

/* Steel variants */
.steel-primary { color: var(--steel-primary) !important; }
.steel-secondary { color: var(--steel-secondary) !important; }
.bg-steel-primary { background-color: var(--steel-primary) !important; }
.bg-steel-light { background-color: var(--steel-light) !important; }
.border-steel { border-color: var(--steel-primary) !important; }

/* Concrete variants */
.concrete-primary { color: var(--concrete-primary) !important; }
.concrete-secondary { color: var(--concrete-secondary) !important; }
.bg-concrete-primary { background-color: var(--concrete-primary) !important; }
.bg-concrete-light { background-color: var(--concrete-light) !important; }
.border-concrete { border-color: var(--concrete-primary) !important; }

/* Rebar variants */
.rebar-color { color: var(--rebar-color) !important; }
.bg-rebar { background-color: var(--rebar-color) !important; }
.border-rebar { border-color: var(--rebar-color) !important; }

/* MEP System colors */
.mep-electrical { color: var(--mep-electrical) !important; }
.mep-plumbing { color: var(--mep-plumbing) !important; }
.mep-hvac { color: var(--mep-hvac) !important; }
.mep-fire { color: var(--mep-fire) !important; }

.bg-mep-electrical { background-color: var(--mep-electrical) !important; }
.bg-mep-plumbing { background-color: var(--mep-plumbing) !important; }
.bg-mep-hvac { background-color: var(--mep-hvac) !important; }
.bg-mep-fire { background-color: var(--mep-fire) !important; }

/* Tolerance states */
.tolerance-excellent { color: var(--tolerance-excellent) !important; }
.tolerance-good { color: var(--tolerance-good) !important; }
.tolerance-acceptable { color: var(--tolerance-acceptable) !important; }
.tolerance-poor { color: var(--tolerance-poor) !important; }
.tolerance-critical { color: var(--tolerance-critical) !important; }

/* ===========================
   MATERIAL-SPECIFIC COMPONENTS
   =========================== */

/* BIM Element material types */
.bim-element.beam {
    border-color: var(--steel-primary);
    background: rgba(74, 85, 104, 0.2);
}

.bim-element.column {
    border-color: var(--steel-secondary);
    background: rgba(113, 128, 150, 0.2);
}

.bim-element.slab {
    border-color: var(--concrete-primary);
    background: rgba(160, 174, 192, 0.2);
}

.bim-element.wall {
    border-color: var(--concrete-secondary);
    background: rgba(203, 213, 224, 0.2);
}

.bim-element.rebar {
    border-color: var(--rebar-color);
    background: rgba(229, 62, 62, 0.2);
}

/* Sidebar material items */
.sidebar-item.steel { color: var(--steel-primary); }
.sidebar-item.concrete { color: var(--concrete-primary); }
.sidebar-item.rebar { color: var(--rebar-color); }

/* Metric values material-specific */
.metric-value.steel { color: var(--steel-primary); }
.metric-value.concrete { color: var(--concrete-primary); }
.metric-value.rebar { color: var(--rebar-color); }

/* Author avatars material-themed */
.author-avatar.steel-avatar { background: var(--steel-primary); }
.author-avatar.concrete-avatar { background: var(--concrete-primary); }
.author-avatar.rebar-avatar { background: var(--rebar-color); }



/* =========================================
   END OF UNIFIED COMPONENTS
   
   Total: 29 components, 8990 lines
   Generated: 2025-11-28 11:17:42
   ========================================= */
