
        /* ==========================================
           REGLES GÉNÉRALES / RESET
           ========================================== */
        *, *::before, *::after {
            box-sizing: border-box;
        }

        body {
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            line-height: 1.6;
            color: #2d3748;
            background-color: #ffffff;
            margin: 0;
            padding: 0;
        }

        h1, h2, h3, h4 {
            color: #1a202c;
            margin-top: 0;
            font-weight: 700;
        }

        h1 { font-size: 2.5rem; line-height: 1.2; }
        h2 { font-size: 2rem; margin-bottom: 1.5rem; text-align: center; }
        h3 { font-size: 1.35rem; margin-bottom: 0.75rem; }

        p {
            margin-top: 0;
            margin-bottom: 1.25rem;
            color: #4a5568;
        }

        a {
            text-decoration: none;
            transition: all 0.3s ease;
        }

        ul {
            padding-left: 1.25rem;
            margin-bottom: 1.5rem;
        }

        li {
            margin-bottom: 0.5rem;
        }

        /* Variables de colores principales */
        :root {
            --primary-color: #2563eb; /* Azul corporativo */
            --primary-hover: #1d4ed8;
            --accent-color: #f97316;  /* Naranja de acción */
            --accent-hover: #ea580c;
            --bg-light: #f8fafc;      /* Fondo claro de secciones */
            --border-color: #e2e8f0;  /* Bordes y líneas sutiles */
        }

        /* ==========================================
           COMPONENTES REUTILIZABLES
           ========================================== */
        .container {
            width: 100%;
            max-width: 1100px;
            margin: 0 auto;
            padding: 0 20px;
        }

        .btn {
            display: inline-block;
            padding: 0.75rem 1.75rem;
            border-radius: 6px;
            font-weight: 600;
            text-align: center;
            cursor: pointer;
            border: none;
            font-size: 1rem;
        }

        .btn-primary {
            background-color: var(--primary-color);
            color: #ffffff;
        }

        .btn-primary:hover {
            background-color: var(--primary-hover);
        }

        .btn-accent {
            background-color: var(--accent-color);
            color: #ffffff;
        }

        .btn-accent:hover {
            background-color: var(--accent-hover);
        }

        /* Espaciadores para sustituir flex/grid en WeasyPrint */
        .row {
            display: table;
            width: 100%;
            table-layout: fixed;
            margin-bottom: 2rem;
        }

        .col-3 {
            display: table-cell;
            width: 33.333%;
            padding: 15px;
            vertical-align: top;
        }

        .col-2 {
            display: table-cell;
            width: 50%;
            padding: 15px;
            vertical-align: top;
        }

        .placeholder-box {
            background-color: #f1f5f9;
            border: 2px dashed #cbd5e1;
            color: #64748b;
            padding: 20px;
            text-align: center;
            font-style: italic;
            border-radius: 6px;
            margin-bottom: 1rem;
        }

        /* ==========================================
           ESTILOS DE SECCIONES
           ========================================== */
        
        /* Header / Navegación simulada */
        .header {
            border-bottom: 1px solid var(--border-color);
            padding: 20px 0;
            background-color: #ffffff;
        }

        .header-table {
            display: table;
            width: 100%;
        }

        .logo-cell {
            display: table-cell;
            vertical-align: middle;
            font-size: 1.5rem;
            font-weight: bold;
            color: var(--primary-color);
        }

        .nav-cell {
            display: table-cell;
            vertical-align: middle;
            text-align: right;
            color: #718096;
            font-size: 0.95rem;
        }

        /* Sección Hero */
        .hero {
            padding: 60px 0;
            background: linear-gradient(135deg, #f0f4ff 0%, #e0e7ff 100%);
            border-bottom: 1px solid var(--border-color);
        }

        .hero-content {
            max-width: 800px;
            margin: 0 auto;
            text-align: center;
        }

        .hero h1 {
            margin-bottom: 1.5rem;
        }

        .hero p {
            font-size: 1.2rem;
            color: #4a5568;
            margin-bottom: 2rem;
        }

        /* Propuesta de valor / Quiénes somos */
        .about-section {
            padding: 60px 0;
        }

        .about-text {
            padding-right: 30px;
        }

        /* Servicios */
        .services-section {
            padding: 60px 0;
            background-color: var(--bg-light);
            border-top: 1px solid var(--border-color);
            border-bottom: 1px solid var(--border-color);
        }

        .service-card {
            background-color: #ffffff;
            padding: 25px;
            border-radius: 8px;
            border: 1px solid var(--border-color);
            height: 100%;
        }

        .service-icon {
            font-size: 2rem;
            color: var(--primary-color);
            margin-bottom: 1rem;
        }

        /* Por qué elegirnos */
        .why-choose-us {
            padding: 60px 0;
        }

        .feature-list {
            list-style: none;
            padding: 0;
        }

        .feature-item {
            position: relative;
            padding-left: 30px;
            margin-bottom: 1.25rem;
        }

        .feature-item::before {
            content: "✓";
            position: absolute;
            left: 0;
            top: 0;
            color: var(--accent-color);
            font-weight: bold;
            font-size: 1.1rem;
        }

        /* Proceso de trabajo */
        .process-section {
            padding: 60px 0;
            background-color: var(--bg-light);
            border-top: 1px solid var(--border-color);
        }

        .step-card {
            text-align: center;
            padding: 20px;
        }

        .step-number {
            display: inline-block;
            width: 40px;
            height: 40px;
            line-height: 40px;
            background-color: var(--primary-color);
            color: #ffffff;
            border-radius: 50%;
            font-weight: bold;
            margin-bottom: 1rem;
        }

        /* Contacto / Formulario */
        .contact-section {
            padding: 60px 0;
            border-top: 1px solid var(--border-color);
        }

        .form-group {
            margin-bottom: 1.25rem;
        }

        .form-group label {
            display: block;
            margin-bottom: 0.5rem;
            font-weight: 600;
            font-size: 0.9rem;
        }

        .form-control {
            width: 100%;
            padding: 0.75rem;
            border: 1px solid var(--border-color);
            border-radius: 6px;
            font-size: 1rem;
            background-color: #fafafa;
        }

        .contact-info-list {
            list-style: none;
            padding: 0;
            margin-top: 1.5rem;
        }

        .contact-info-list li {
            margin-bottom: 1rem;
            font-size: 1.05rem;
        }

        /* Footer */
        .footer {
            background-color: #1a202c;
            color: #a0aec0;
            padding: 40px 0;
            text-align: center;
            font-size: 0.9rem;
            border-top: 4px solid var(--primary-color);
        }

        .footer p {
            color: #a0aec0;
            margin: 0;
        }