/**
 * ============================================================================
 * GESTAODE.STUDIO – Folha de Estilo Oficial dos Contratos & PDF
 * Arquivo: assets/css/contrato.css
 * ============================================================================
 * Centraliza 100% da identidade visual, tipografia, espaçamentos e layouts
 * (Clássico, Moderno e Minimalista) tanto para a Visualização Web quanto
 * para a geração e impressão de PDFs via DomPDF e Navegador.
 */

/* ----------------------------------------------------------------------------
 * 1. CONFIGURAÇÃO GERAL DA FOLHA A4 & CONTAINER PRINCIPAL
 * ---------------------------------------------------------------------------- */
@page {
    size: A4 portrait;
    margin: 18mm 16mm;
}

body.contract-pdf-body {
    background: #ffffff;
    font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif;
    font-size: 10pt;
    line-height: 1.65;
    color: #334155;
    margin: 0;
    padding: 0;
}

.contract-paper,
.contract-unified-wrapper {
    background: #ffffff;
    font-family: 'Google Sans', 'DejaVu Sans', Arial, sans-serif;
    color: #334155;
    max-width: 210mm; /* Proporção padrão A4 */
    margin: 40px auto;
    padding: 12mm 16mm;
    box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.08);
    border-radius: 16px;
    box-sizing: border-box;
    border: 1px solid #e2e8f0;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
    position: relative;
    z-index: 1;
}

.contract-paper *,
.contract-unified-wrapper * {
    box-sizing: border-box;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

/* ----------------------------------------------------------------------------
 * 2. CABEÇALHO / LETTERHEAD & LOGOTIPO
 * ---------------------------------------------------------------------------- */
.contract-unified-wrapper .brand-logo,
.contract-paper .brand-logo {
    max-height: 50px;
    margin: 0 auto 30px auto;
    display: block;
    object-fit: contain;
}

.contract-unified-letterhead {
    text-align: center;
    margin: -15px auto 25px auto;
    padding-bottom: 16px;
    border-bottom: 1px solid #e2e8f0;
}

.contract-unified-letterhead-nome {
    font-size: 13pt;
    font-weight: 800;
    color: #0f172a;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.contract-unified-letterhead-info {
    font-size: 9pt;
    color: #64748b;
    margin-top: 4px;
}

/* Preâmbulo e Título do Documento */
.contract-preamble {
    margin-bottom: 30px !important;
}

.contract-preamble-header {
    text-align: center !important;
    margin-bottom: 25px !important;
    padding: 10px 20px !important;
}

.contract-preamble-title {
    font-weight: 800 !important;
    color: #0f172a !important;
    letter-spacing: -0.5px !important;
    margin-bottom: 8px !important;
    font-size: 1.35rem !important;
    text-transform: uppercase !important;
    line-height: 1.25 !important;
}

.contract-preamble-subtitle {
    color: #64748b !important;
    font-size: 10.5pt !important;
    margin: 0 !important;
}

.contract-legal-intro {
    background: #eff6ff !important;
    border-left: 4px solid #017dd3 !important;
    padding: 14px 18px !important;
    border-radius: 6px !important;
    margin: 20px 0 25px 0 !important;
    color: #1e3a8a !important;
    font-size: 9.5pt !important;
    line-height: 1.6 !important;
}

/* ----------------------------------------------------------------------------
 * 3. QUALIFICAÇÃO DAS PARTES (CARDS DE CONTRATANTE E CONTRATADO)
 * ---------------------------------------------------------------------------- */
.contract-parties {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 16px !important;
    margin-bottom: 25px !important;
}

.party-card {
    flex: 1 1 220px !important;
    background: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-left: 4px solid #017dd3 !important;
    border-radius: 10px !important;
    padding: 18px 20px !important;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.02) !important;
}

.party-card-label {
    color: #017dd3 !important;
    font-weight: 700 !important;
    font-size: 9.5pt !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    margin-bottom: 8px !important;
}

.party-card-nome {
    font-weight: 800 !important;
    font-size: 11.5pt !important;
    color: #0f172a !important;
    margin-bottom: 8px !important;
}

.party-card-info {
    font-size: 10pt !important;
    line-height: 1.65 !important;
    color: #334155 !important;
}

/* ----------------------------------------------------------------------------
 * 4. TIPOGRAFIA & CLÁUSULAS (VISUAL LAW)
 * ---------------------------------------------------------------------------- */
.contract-unified-body,
.contract-paper {
    font-size: 10.5pt !important;
    line-height: 1.7 !important;
    text-align: justify !important;
    width: 100% !important;
}

.contract-unified-body strong,
.contract-unified-body b,
.contract-paper strong,
.contract-paper b {
    color: #0f172a !important;
    font-weight: 700 !important;
}

.contract-unified-body h1,
.contract-unified-body h2,
.contract-unified-body h3,
.contract-paper h1,
.contract-paper h2,
.contract-paper h3 {
    font-size: 13pt !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    color: #0f172a !important;
    margin-top: 25pt !important;
    margin-bottom: 10pt !important;
    text-align: center !important;
    letter-spacing: -0.3px !important;
}

.clause-block {
    margin-bottom: 22px !important;
}

.contract-unified-body h4.clause-title,
.contract-unified-body h4,
.contract-paper h4.clause-title,
.contract-paper h4,
.clause-title {
    font-size: 11pt !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    color: #0f172a !important;
    margin-top: 24pt !important;
    margin-bottom: 12pt !important;
    text-align: left !important;
    background: transparent !important;
    border-bottom: 1.5pt solid #e2e8f0 !important;
    padding: 0 0 8px 0 !important;
}

.clause-title-flex {
    display: flex !important;
    align-items: center !important;
}

.clause-icon-wrap {
    width: 48px !important;
    height: 48px !important;
    border-radius: 10px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 1.15rem !important;
    margin-right: 14px !important;
    flex-shrink: 0 !important;
    background: #f0f7ff !important;
    color: #017dd3 !important;
    border: 1px solid #dbeafe !important;
}

.clause-text-wrap {
    display: flex !important;
    flex-direction: column !important;
    line-height: 1.25 !important;
}

.clause-number-badge {
    color: #64748b !important;
    font-size: 0.75rem !important;
    font-weight: 800 !important;
    letter-spacing: 0.5px !important;
    margin-bottom: 3px !important;
    display: block !important;
}

.contract-unified-body p,
.contract-paper p {
    margin-bottom: 1.1em;
}

.contract-unified-body ul,
.contract-unified-body ol,
.contract-paper ul,
.contract-paper ol {
    margin-bottom: 1.1em;
    padding-left: 28px;
}

.contract-unified-body li,
.contract-paper li {
    margin-bottom: 4pt;
}

.contract-unified-body blockquote,
.contract-paper blockquote {
    background: #eff6ff;
    color: #1e40af;
    padding: 12px 16px;
    border-radius: 8px;
    font-size: 9.5pt;
    margin: 14px 0;
    border: 1px solid #dbeafe;
    border-left: 4px solid #017dd3;
    font-style: normal;
}

/* ----------------------------------------------------------------------------
 * 5. TIMELINE DE PRAZOS & TABELA DE PAGAMENTOS
 * ---------------------------------------------------------------------------- */
.contract-timeline {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    margin: 20px 0;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.02);
    overflow: hidden;
}

.timeline-steps-grid {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 10px;
    text-align: center;
    padding: 22px 18px;
}

.timeline-step {
    flex: 1;
    min-width: 100px;
}

.timeline-step i {
    font-size: 1.4rem;
    color: #017dd3;
    margin-bottom: 8px;
    display: block;
}

.timeline-step-title {
    display: block;
    font-size: 0.85rem;
    color: #1e293b;
    margin-bottom: 4px;
    font-weight: 700;
}

.timeline-step-desc {
    font-size: 0.8rem;
    color: #64748b;
    line-height: 1.3;
    display: block;
}

.timeline-divider {
    color: #cbd5e1;
    font-size: 1.1rem;
}

/* Caixa de Pagamentos */
.contract-payment-box {
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    border-radius: 12px;
    margin: 20px 0;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.02);
    overflow: hidden;
}

.contract-payment-header {
    background: #dcfce7;
    padding: 14px 20px;
    text-align: center;
    border-bottom: 1px solid #bbf7d0;
}

.payment-header-label {
    display: block;
    font-size: 0.85rem;
    color: #166534;
    text-transform: uppercase;
    font-weight: 700;
    margin-bottom: 4px;
}

.payment-header-value {
    font-size: 1.45rem;
    color: #15803d;
    font-weight: 800;
}

.payment-header-original {
    display: block;
    font-size: 0.9rem;
    color: #64748b;
    text-decoration: line-through;
    margin-bottom: 2px;
}

.payment-header-discount {
    display: block;
    font-size: 0.78rem;
    color: #166534;
    margin-top: 4px;
}

.contract-payment-list {
    padding: 0;
}

.contract-payment-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 20px;
    background: #ffffff;
    border-bottom: 1px solid #e2e8f0;
    border-left: 3px solid transparent;
}

.contract-payment-row:last-child {
    border-bottom: none;
}

.payment-row-entrada {
    border-left: 3px solid #10b981;
}

.payment-row-info {
    display: flex;
    flex-direction: column;
}

.payment-row-title {
    color: #1e293b;
    font-size: 0.9rem;
    font-weight: 700;
}

.payment-row-meta {
    color: #64748b;
    font-size: 0.85rem;
    margin-top: 2px;
}

.payment-row-meta i {
    margin-right: 4px;
}

.payment-row-value {
    color: #15803d;
    font-size: 1rem;
    font-weight: 800;
}

/* ----------------------------------------------------------------------------
 * 6. BLOCO DE ASSINATURAS & AUDITORIA DIGITAL
 * ---------------------------------------------------------------------------- */
.contract-unified-signatures,
.sign-block {
    margin-top: 50px;
    page-break-inside: avoid;
    break-inside: avoid;
}

.contract-unified-signatures {
    display: flex;
    flex-wrap: wrap;
}

.contract-unified-sign-col {
    width: 50%;
    text-align: center;
    padding: 0 12px;
    box-sizing: border-box;
    margin-bottom: 20px;
}

.contract-unified-signatures--tres .contract-unified-sign-col {
    width: 33.33%;
}

.contract-unified-sign-line,
.sign-line {
    border-top: 1.5pt solid #cbd5e1;
    width: 85%;
    margin: 0 auto;
    padding-top: 8px;
    color: #0f172a;
    font-size: 10.5pt;
    font-weight: bold;
    text-align: center;
}

.contract-unified-sign-img {
    height: 50px;
    display: block;
    margin: 0 auto -10px auto;
    object-fit: contain;
}

.sign-sub {
    font-size: 8.5pt;
    font-weight: normal;
    color: #64748b;
    display: block;
    margin-top: 2px;
}

/* Selo de Auditoria e Assinatura Eletrônica */
.contract-unified-audit {
    margin-top: 40px;
    padding: 20px;
    background-color: #f0fdf4;
    border: 1.5pt dashed #bbf7d0;
    border-radius: 10px;
    text-align: center;
}

.contract-unified-audit-title {
    margin-bottom: 12px;
    font-weight: 800;
    color: #16a34a;
    font-size: 11pt;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.contract-unified-audit-content {
    font-size: 9pt;
    color: #334155;
    line-height: 1.7;
    text-align: left;
    display: inline-block;
    max-width: 100%;
}

.contract-unified-hash {
    font-family: 'Courier New', Courier, monospace;
    background: #ffffff;
    padding: 6pt 10pt;
    border-radius: 4px;
    border: 1pt solid #dcfce7;
    margin-top: 4pt;
    color: #15803d;
    font-weight: bold;
    word-break: break-all;
    font-size: 8.5pt;
}

/* ----------------------------------------------------------------------------
 * 7. TEMAS VISUAIS ESPECÍFICOS (CLÁSSICO, MODERNO E MINIMALISTA)
 * ---------------------------------------------------------------------------- */

/* NOTA DE MANUTENÇÃO: as regras base (seções 1-6) usam !important para vencer os
   estilos inline que vêm de contratos legados e do editor de modelos. Por isso os
   overrides de tema abaixo TAMBÉM precisam de !important — sem ele o tema é
   silenciosamente ignorado (o navegador só compara especificidade entre duas
   declarações !important). Ao adicionar um override novo aqui, confira se a regra
   base equivalente tem !important e repita. */

/* === A. MODELO CLÁSSICO === */
.contract-layout-classico .contract-unified-letterhead-nome {
    color: #017dd3;
}
.contract-layout-classico .contract-legal-intro {
    border-left-color: #017dd3 !important;
}
.contract-layout-classico .party-card {
    border-left-color: #017dd3 !important;
}
.contract-layout-classico .party-card-label {
    color: #017dd3 !important;
}
.contract-layout-classico .clause-icon-wrap {
    background: #f0f7ff !important;
    color: #017dd3 !important;
    border-color: #dbeafe !important;
}
.contract-layout-classico .timeline-step i {
    color: #017dd3;
}
.contract-layout-classico .contract-unified-body h4.clause-title,
.contract-layout-classico .contract-unified-body h4,
.contract-layout-classico h4.clause-title,
.contract-layout-classico h4 {
    border-bottom: 2px solid #e2e8f0 !important;
}
.contract-layout-classico blockquote {
    border-left-color: #017dd3;
}
.contract-layout-classico .contract-unified-sign-line {
    border-top-color: #017dd3;
}
/* Caixa de pagamentos no tom azul institucional do tema (antes ficava verde fixo,
   destoando do resto do documento). */
.contract-layout-classico .contract-payment-box {
    background: #f0f7ff;
    border-color: #dbeafe;
}
.contract-layout-classico .contract-payment-header {
    background: #dbeafe;
    border-bottom-color: #bfdbfe;
}
.contract-layout-classico .payment-header-label,
.contract-layout-classico .payment-header-discount {
    color: #01639f;
}
/* !important porque `.contract-unified-body strong` força #0f172a em todo <strong> */
.contract-layout-classico .payment-header-value,
.contract-layout-classico .payment-row-value {
    color: #017dd3 !important;
}
.contract-layout-classico .payment-row-entrada {
    border-left-color: #017dd3;
}

/* === B. MODELO MODERNO === */
.contract-layout-moderno.contract-unified-wrapper,
.contract-layout-moderno.contract-paper {
    border-radius: 24px;
    border-color: #e0e7ff;
}
.contract-layout-moderno .contract-unified-letterhead-nome,
.contract-layout-moderno .contract-preamble-title {
    color: #4f46e5 !important;
}
.contract-layout-moderno .contract-legal-intro {
    background: #eef2ff !important;
    border-left-color: #4f46e5 !important;
    color: #3730a3 !important;
    border-radius: 10px !important;
}
.contract-layout-moderno .party-card {
    border-radius: 14px !important;
    border-color: #e0e7ff !important;
    /* depois de border-color, senão a borda esquerda colorida é sobrescrita */
    border-left-color: #4f46e5 !important;
}
.contract-layout-moderno .party-card-label {
    color: #4f46e5 !important;
}
.contract-layout-moderno .clause-icon-wrap {
    background: #4f46e5 !important;
    color: #ffffff !important;
    border-radius: 12px !important;
    border: none !important;
}
.contract-layout-moderno .timeline-step i {
    color: #4f46e5;
}
.contract-layout-moderno .contract-unified-letterhead {
    border-bottom-color: #e0e7ff;
}
.contract-layout-moderno .contract-unified-body h1,
.contract-layout-moderno .contract-unified-body h2,
.contract-layout-moderno .contract-unified-body h3,
.contract-layout-moderno h1,
.contract-layout-moderno h2,
.contract-layout-moderno h3 {
    color: #4f46e5 !important;
}
.contract-layout-moderno .contract-unified-body h4.clause-title,
.contract-layout-moderno .contract-unified-body h4,
.contract-layout-moderno h4.clause-title,
.contract-layout-moderno h4 {
    background: #eef2ff !important;
    border: none !important;
    border-left: 5px solid #4f46e5 !important;
    padding: 10px 14px !important;
    border-radius: 8px;
    color: #3730a3 !important;
}
.contract-layout-moderno blockquote {
    background: #eef2ff;
    color: #3730a3;
    border-color: #e0e7ff;
    border-left-color: #4f46e5;
    border-radius: 10px;
}
.contract-layout-moderno .contract-unified-sign-line {
    border-top: 2px solid #4f46e5;
}
.contract-layout-moderno .contract-unified-audit {
    background-color: #eef2ff;
    border-color: #c7d2fe;
    border-radius: 14px;
}
.contract-layout-moderno .contract-unified-audit-title {
    color: #4f46e5;
}
.contract-layout-moderno .contract-unified-hash {
    color: #4338ca;
    border-color: #c7d2fe;
}
/* Caixa de pagamentos, bloco de imagem e timeline no índigo do tema, com os cantos
   bem arredondados que caracterizam este layout (antes ficavam verde/azul fixos). */
.contract-layout-moderno .contract-payment-box {
    background: #eef2ff;
    border-color: #e0e7ff;
    border-radius: 16px;
}
.contract-layout-moderno .contract-payment-header {
    background: #e0e7ff;
    border-bottom-color: #c7d2fe;
}
.contract-layout-moderno .payment-header-label,
.contract-layout-moderno .payment-header-discount {
    color: #3730a3;
}
/* !important porque `.contract-unified-body strong` força #0f172a em todo <strong> */
.contract-layout-moderno .payment-header-value,
.contract-layout-moderno .payment-row-value {
    color: #4f46e5 !important;
}
.contract-layout-moderno .payment-row-entrada {
    border-left-color: #4f46e5;
}
.contract-layout-moderno .contract-timeline {
    background: #eef2ff;
    border-color: #e0e7ff;
    border-radius: 16px;
}
.contract-layout-moderno span.menor {
    background: #eef2ff;
    border-color: #e0e7ff;
    border-left-color: #4f46e5;
    border-radius: 14px;
}
.contract-layout-moderno .imag {
    background: #4f46e5;
}

/* === C. MODELO MINIMALISTA === */
.contract-layout-minimalista.contract-unified-wrapper,
.contract-layout-minimalista.contract-paper {
    box-shadow: none !important;
    border: 1px solid #d1d5db !important;
    border-radius: 0 !important;
}
.contract-layout-minimalista,
.contract-layout-minimalista .contract-unified-body {
    font-family: 'DejaVu Serif', Georgia, 'Times New Roman', serif !important;
}
.contract-layout-minimalista .contract-unified-letterhead-nome,
.contract-layout-minimalista .contract-preamble-title {
    color: #111827 !important;
    font-weight: 700 !important;
    letter-spacing: 1px !important;
}
.contract-layout-minimalista .contract-legal-intro {
    background: transparent !important;
    border: 1px solid #e5e7eb !important;
    border-left: 2px solid #111827 !important;
    color: #374151 !important;
    border-radius: 0 !important;
}
.contract-layout-minimalista .party-card {
    border: 1px solid #e5e7eb !important;
    border-left: 2px solid #111827 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}
.contract-layout-minimalista .party-card-label {
    color: #111827 !important;
}
.contract-layout-minimalista .clause-icon-wrap {
    background: transparent !important;
    color: #111827 !important;
    border: 1px solid #111827 !important;
    border-radius: 0 !important;
}
.contract-layout-minimalista .timeline-step i {
    color: #111827;
}
.contract-layout-minimalista .contract-unified-letterhead {
    border-bottom: 1px solid #111827;
}
.contract-layout-minimalista .contract-unified-body h1,
.contract-layout-minimalista .contract-unified-body h2,
.contract-layout-minimalista .contract-unified-body h3,
.contract-layout-minimalista h1,
.contract-layout-minimalista h2,
.contract-layout-minimalista h3 {
    color: #111827 !important;
    font-weight: 700 !important;
    letter-spacing: 0.5px !important;
}
.contract-layout-minimalista .contract-unified-body h4.clause-title,
.contract-layout-minimalista .contract-unified-body h4,
.contract-layout-minimalista h4.clause-title,
.contract-layout-minimalista h4 {
    background: transparent !important;
    border: none !important;
    border-bottom: 1px solid #111827 !important;
    color: #111827 !important;
    font-weight: 700 !important;
    padding: 0 0 6px 0 !important;
    border-radius: 0 !important;
}
.contract-layout-minimalista blockquote {
    background: transparent;
    color: #374151;
    border: 1px solid #e5e7eb;
    border-left: 2px solid #111827;
    border-radius: 0;
}
.contract-layout-minimalista .contract-unified-sign-line {
    border-top: 1px solid #111827;
    font-weight: 700;
}
.contract-layout-minimalista .contract-unified-audit {
    background-color: #ffffff;
    border: 1px solid #111827;
    border-radius: 0;
}
.contract-layout-minimalista .contract-unified-audit-title {
    color: #111827;
}
.contract-layout-minimalista .contract-unified-hash {
    color: #111827;
    background: #f9fafb;
    border-color: #e5e7eb;
}
/* Sem cor de verdade: a caixa de pagamentos vinha verde e o bloco de uso de imagem
   vinha azul, contrariando a proposta "preto e branco editorial" deste layout.
   Também zera os cantos arredondados que sobravam nos blocos internos. */
.contract-layout-minimalista .contract-payment-box {
    background: #ffffff;
    border: 1px solid #111827;
    border-radius: 0;
    box-shadow: none;
}
.contract-layout-minimalista .contract-payment-header {
    background: #f9fafb;
    border-bottom-color: #111827;
}
/* !important porque `.contract-unified-body strong` força #0f172a em todo <strong> */
.contract-layout-minimalista .payment-header-label,
.contract-layout-minimalista .payment-header-value,
.contract-layout-minimalista .payment-header-discount,
.contract-layout-minimalista .payment-row-value,
.contract-layout-minimalista .payment-row-title {
    color: #111827 !important;
}
.contract-layout-minimalista .payment-header-original {
    color: #6b7280;
}
.contract-layout-minimalista .contract-payment-row {
    border-bottom-color: #e5e7eb;
}
.contract-layout-minimalista .payment-row-entrada {
    border-left-color: #111827;
}
.contract-layout-minimalista .contract-timeline {
    background: #ffffff;
    border-color: #111827;
    border-radius: 0;
    box-shadow: none;
}
.contract-layout-minimalista span.menor {
    background: transparent;
    border: 1px solid #e5e7eb;
    border-left: 2px solid #111827;
    border-radius: 0;
    box-shadow: none;
}
.contract-layout-minimalista .imag {
    background: #111827;
}

/* ----------------------------------------------------------------------------
 * 8. REGRAS DE IMPRESSÃO DO NAVEGADOR & RESPONSIVIDADE
 * ---------------------------------------------------------------------------- */
@media screen and (max-width: 768px) {
    .contract-unified-wrapper,
    .contract-paper {
        margin: 15px auto;
        padding: 20px 15px;
        border-radius: 8px;
        box-shadow: none;
    }
    .contract-unified-sign-col {
        width: 100%;
        margin-bottom: 25px;
    }
}

@media print {
    @page {
        size: A4 portrait;
        margin: 20mm 16mm;
    }
    body {
        background: #ffffff !important;
    }
    .contract-unified-wrapper,
    .contract-paper {
        padding: 0 !important;
        box-shadow: none !important;
        max-width: none !important;
        width: 100% !important;
        margin: 0 !important;
        border-radius: 0 !important;
        border: none !important;
    }
    .clause-block,
    .contract-unified-signatures,
    .sign-block,
    .contract-unified-audit {
        page-break-inside: avoid !important;
        break-inside: avoid !important;
    }
    h1, h2, h3, h4, h5, h6, .clause-title {
        page-break-after: avoid !important;
        break-after: avoid !important;
    }
    .brand-logo,
    .contract-unified-sign-img {
        image-rendering: -webkit-optimize-contrast;
        image-rendering: crisp-edges;
    }
}

span.menor {
    display: block;
    position: relative;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-left: 6px solid #017dd3;
    border-radius: 12px;
    padding: 20px 20px 20px 35px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.02);
    margin-top: 25px;
    margin-bottom: 25px;
}
.imag {
    position: absolute;
    top: 50%;
    left: -32px;
    transform: translateY(-50%);
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: #017dd3;
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    border: 4px solid #ffffff;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}