/* ============================================
   LEGAL TYPOGRAPHY
   Estilos tipográficos para páginas legales
   ============================================ */

/* ============================================
   TÍTULOS PRINCIPALES (H1)
   ============================================ */
.ct-container-full article.page .hero-section .entry-header h1.page-title,
body.legal-page article.page .hero-section .entry-header h1,
body.legal-page .hero-section h1.page-title {
    font-family: var(--legal-font-family);
    font-size: var(--legal-font-4xl);
    font-weight: var(--legal-font-bold);
    line-height: var(--legal-line-height-headings);
    color: var(--legal-bg-white);
    margin: 0;
    padding: 0;
    text-align: center;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* ============================================
   TÍTULOS DE SECCIÓN (H2)
   ============================================ */
.ct-container-full article.page.type-page .entry-content.is-layout-constrained h2,
body.legal-page article.page .entry-content h2 {
    font-family: var(--legal-font-family);
    font-size: var(--legal-font-2xl);
    font-weight: var(--legal-font-bold);
    line-height: var(--legal-line-height-headings);
    color: var(--legal-text-primary);
    margin-top: var(--legal-spacing-3xl);
    margin-bottom: var(--legal-spacing-lg);
    padding-bottom: var(--legal-spacing-sm);
    border-bottom: 2px solid var(--legal-border);
}

.ct-container-full article.page.type-page .entry-content.is-layout-constrained h2:first-child,
body.legal-page article.page .entry-content h2:first-child {
    margin-top: 0;
}

/* ============================================
   SUBTÍTULOS (H3)
   ============================================ */
.ct-container-full article.page.type-page .entry-content.is-layout-constrained h3,
body.legal-page article.page .entry-content h3 {
    font-family: var(--legal-font-family);
    font-size: var(--legal-font-xl);
    font-weight: var(--legal-font-semibold);
    line-height: var(--legal-line-height-headings);
    color: var(--legal-text-primary);
    margin-top: var(--legal-spacing-xl);
    margin-bottom: var(--legal-spacing-md);
}

/* ============================================
   H4, H5, H6
   ============================================ */
.ct-container-full article.page.type-page .entry-content.is-layout-constrained h4,
body.legal-page article.page .entry-content h4 {
    font-family: var(--legal-font-family);
    font-size: var(--legal-font-lg);
    font-weight: var(--legal-font-semibold);
    color: var(--legal-text-primary);
    margin-top: var(--legal-spacing-lg);
    margin-bottom: var(--legal-spacing-sm);
}

.ct-container-full article.page.type-page .entry-content.is-layout-constrained h5,
body.legal-page article.page .entry-content h5 {
    font-family: var(--legal-font-family);
    font-size: var(--legal-font-md);
    font-weight: var(--legal-font-semibold);
    color: var(--legal-text-secondary);
    margin-top: var(--legal-spacing-md);
    margin-bottom: var(--legal-spacing-sm);
}

.ct-container-full article.page.type-page .entry-content.is-layout-constrained h6,
body.legal-page article.page .entry-content h6 {
    font-family: var(--legal-font-family);
    font-size: var(--legal-font-sm);
    font-weight: var(--legal-font-semibold);
    color: var(--legal-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-top: var(--legal-spacing-md);
    margin-bottom: var(--legal-spacing-sm);
}

/* ============================================
   PÁRRAFOS
   ============================================ */
.ct-container-full article.page.type-page .entry-content.is-layout-constrained p,
body.legal-page article.page .entry-content p {
    font-family: var(--legal-font-family);
    font-size: var(--legal-font-md);
    line-height: var(--legal-line-height-base);
    color: var(--legal-text-primary);
    margin: 0 0 var(--legal-spacing-lg);
}

.ct-container-full article.page.type-page .entry-content.is-layout-constrained p:last-child,
body.legal-page article.page .entry-content p:last-child {
    margin-bottom: 0;
}

/* Párrafo introductorio (primer párrafo después de h1) */
.ct-container-full article.page.type-page .entry-content.is-layout-constrained > p:first-of-type,
body.legal-page article.page .entry-content > p:first-of-type {
    font-size: var(--legal-font-lg);
    color: var(--legal-text-secondary);
    margin-bottom: var(--legal-spacing-xl);
}

/* ============================================
   LISTAS
   ============================================ */

/* Listas desordenadas (ul) */
.ct-container-full article.page.type-page .entry-content.is-layout-constrained ul.wp-block-list,
.ct-container-full article.page.type-page .entry-content.is-layout-constrained ul,
body.legal-page article.page .entry-content ul.wp-block-list,
body.legal-page article.page .entry-content ul {
    list-style: none;
    padding-left: 0;
    margin: var(--legal-spacing-lg) 0;
}

.ct-container-full article.page.type-page .entry-content.is-layout-constrained ul.wp-block-list li,
.ct-container-full article.page.type-page .entry-content.is-layout-constrained ul li,
body.legal-page article.page .entry-content ul.wp-block-list li,
body.legal-page article.page .entry-content ul li {
    font-family: var(--legal-font-family);
    position: relative;
    padding-left: var(--legal-spacing-xl);
    margin-bottom: var(--legal-spacing-md);
    font-size: var(--legal-font-md);
    line-height: var(--legal-line-height-base);
    color: var(--legal-text-primary);
}

.ct-container-full article.page.type-page .entry-content.is-layout-constrained ul.wp-block-list li::before,
.ct-container-full article.page.type-page .entry-content.is-layout-constrained ul li::before,
body.legal-page article.page .entry-content ul.wp-block-list li::before,
body.legal-page article.page .entry-content ul li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 10px;
    width: 6px;
    height: 6px;
    background-color: var(--legal-primary);
    border-radius: 50%;
}

/* Listas ordenadas (ol) */
.ct-container-full article.page.type-page .entry-content.is-layout-constrained ol,
body.legal-page article.page .entry-content ol {
    counter-reset: legal-counter;
    list-style: none;
    padding-left: 0;
    margin: var(--legal-spacing-lg) 0;
}

.ct-container-full article.page.type-page .entry-content.is-layout-constrained ol li,
body.legal-page article.page .entry-content ol li {
    font-family: var(--legal-font-family);
    position: relative;
    padding-left: var(--legal-spacing-xl);
    margin-bottom: var(--legal-spacing-md);
    font-size: var(--legal-font-md);
    line-height: var(--legal-line-height-base);
    color: var(--legal-text-primary);
    counter-increment: legal-counter;
}

.ct-container-full article.page.type-page .entry-content.is-layout-constrained ol li::before,
body.legal-page article.page .entry-content ol li::before {
    content: counter(legal-counter) ".";
    position: absolute;
    left: 0;
    top: 0;
    font-weight: var(--legal-font-bold);
    color: var(--legal-primary);
}

/* Listas anidadas */
.legal-page .entry-content ul ul,
.legal-page .entry-content ol ul,
.legal-page .entry-content ul ol,
.legal-page .entry-content ol ol {
    margin-top: var(--legal-spacing-sm);
    margin-bottom: var(--legal-spacing-sm);
    margin-left: var(--legal-spacing-lg);
}

.legal-page .entry-content ul ul li::before {
    width: 4px;
    height: 4px;
    background-color: var(--legal-text-secondary);
}

/* ============================================
   ELEMENTOS ESPECIALES
   ============================================ */

/* Blockquote */
.legal-page .entry-content blockquote {
    position: relative;
    margin: var(--legal-spacing-xl) 0;
    padding: var(--legal-spacing-lg) var(--legal-spacing-lg) var(--legal-spacing-lg) var(--legal-spacing-2xl);
    background-color: var(--legal-bg-light);
    border-left: 4px solid var(--legal-primary);
    border-radius: var(--legal-radius-md);
    font-style: italic;
    color: var(--legal-text-secondary);
}

.legal-page .entry-content blockquote::before {
    content: "\201C";
    position: absolute;
    left: var(--legal-spacing-md);
    top: var(--legal-spacing-md);
    font-size: var(--legal-font-4xl);
    color: var(--legal-primary);
    opacity: 0.3;
    font-family: Georgia, serif;
    line-height: 1;
}

/* Code */
.legal-page .entry-content code {
    padding: 2px 6px;
    background-color: var(--legal-bg-light);
    border: 1px solid var(--legal-border);
    border-radius: var(--legal-radius-sm);
    font-family: "Monaco", "Courier New", monospace;
    font-size: 0.9em;
    color: var(--legal-text-primary);
}

/* Preformatted */
.legal-page .entry-content pre {
    padding: var(--legal-spacing-lg);
    background-color: var(--legal-bg-gray);
    border: 1px solid var(--legal-border);
    border-radius: var(--legal-radius-md);
    overflow-x: auto;
    font-family: "Monaco", "Courier New", monospace;
    font-size: var(--legal-font-sm);
    line-height: 1.6;
}

/* ============================================
   RESPONSIVE
   ============================================ */
@media (max-width: 768px) {
    .legal-page .page-title,
    .legal-page .entry-header h1 {
        font-size: var(--legal-font-3xl);
    }
    
    .legal-page .entry-content h2 {
        font-size: var(--legal-font-xl);
    }
    
    .legal-page .entry-content h3 {
        font-size: var(--legal-font-lg);
    }
    
    .legal-page .entry-content > p:first-of-type {
        font-size: var(--legal-font-md);
    }
}
