/**
 * Zyonix Journal — assets/css/typography.css
 *
 * Prose / article body typography styles.
 *
 * @package Zyonix_Journal
 * @since   1.0.0
 */

/* ── Prose container ──────────────────────────────────────────────────── */
.entry-content,
.prose {
    font-family:   var(--font-serif, 'Source Sans Pro', Georgia, serif);
    font-size:     var(--text-md, 1rem);
    line-height:   var(--leading-article, 1.75);
    color:         var(--color-text-primary, #1a1a1a);
    max-width:     72ch;
}

/* ── Headings ─────────────────────────────────────────────────────────── */
.entry-content h1,
.entry-content h2,
.entry-content h3,
.entry-content h4,
.entry-content h5,
.entry-content h6 {
    font-family:  var(--font-primary, 'Inter', sans-serif);
    font-weight:  var(--font-bold, 700);
    line-height:  var(--leading-snug, 1.35);
    margin-top:   1.75em;
    margin-bottom:.5em;
    color:        var(--color-text-primary, #1a1a1a);
}

.entry-content h2 { font-size: var(--text-3xl, 1.5rem); }
.entry-content h3 { font-size: var(--text-2xl, 1.25rem); }
.entry-content h4 { font-size: var(--text-xl, 1.125rem); }
.entry-content h5,
.entry-content h6 { font-size: var(--text-lg, 1rem); }

/* ── Paragraphs ───────────────────────────────────────────────────────── */
.entry-content p {
    margin-bottom: 1.25em;
}

/* ── Links ────────────────────────────────────────────────────────────── */
.entry-content a {
    color:           var(--color-primary, #1a73e8);
    text-decoration: underline;
    text-underline-offset: 2px;
}
.entry-content a:hover {
    color: var(--color-primary-dark, #1558b0);
}

/* ── Lists ────────────────────────────────────────────────────────────── */
.entry-content ul,
.entry-content ol {
    margin-bottom: 1.25em;
    padding-left:  1.75em;
}
.entry-content li {
    margin-bottom: .4em;
}
.entry-content ul { list-style-type: disc; }
.entry-content ol { list-style-type: decimal; }

/* ── Blockquote ───────────────────────────────────────────────────────── */
.entry-content blockquote {
    border-left:  4px solid var(--color-primary, #1a73e8);
    margin:       1.5em 0;
    padding:      .75em 1.25em;
    background:   var(--color-gray-50, #fafafa);
    font-style:   italic;
    color:        var(--color-text-secondary, #444);
    border-radius: 0 var(--radius-sm, 4px) var(--radius-sm, 4px) 0;
}
.entry-content blockquote p:last-child { margin-bottom: 0; }

/* ── Code ─────────────────────────────────────────────────────────────── */
.entry-content code,
.entry-content kbd,
.entry-content samp {
    font-family:   var(--font-mono, 'JetBrains Mono', monospace);
    font-size:     .875em;
    background:    var(--color-gray-100, #f5f5f5);
    padding:       .15em .4em;
    border-radius: 3px;
    border:        1px solid var(--color-border, #e0e0e0);
}

.entry-content pre {
    font-family:   var(--font-mono, 'JetBrains Mono', monospace);
    font-size:     var(--text-sm, .8125rem);
    background:    var(--color-gray-900, #212121);
    color:         #e0e0e0;
    padding:       1.25em 1.5em;
    border-radius: var(--radius-md, 6px);
    overflow-x:    auto;
    margin-bottom: 1.5em;
    line-height:   1.6;
}
.entry-content pre code {
    background: transparent;
    border: none;
    padding: 0;
    font-size: inherit;
    color: inherit;
}

/* ── Tables ───────────────────────────────────────────────────────────── */
.entry-content table {
    width:           100%;
    border-collapse: collapse;
    margin-bottom:   1.5em;
    font-size:       var(--text-sm, .8125rem);
}
.entry-content th,
.entry-content td {
    border:   1px solid var(--color-border, #e0e0e0);
    padding:  .5em .75em;
    text-align: left;
}
.entry-content th {
    background:  var(--color-gray-100, #f5f5f5);
    font-weight: var(--font-semibold, 600);
}
.entry-content tr:nth-child(even) td {
    background: var(--color-gray-50, #fafafa);
}

/* ── Figures & images ─────────────────────────────────────────────────── */
.entry-content figure {
    margin: 1.5em 0;
}
.entry-content figure img {
    max-width:    100%;
    height:       auto;
    display:      block;
    border-radius: var(--radius-sm, 4px);
}
.entry-content figcaption {
    font-size:  var(--text-sm, .8125rem);
    color:      var(--color-text-muted, #777);
    margin-top: .5em;
    text-align: center;
    font-style: italic;
}

/* ── Horizontal rule ──────────────────────────────────────────────────── */
.entry-content hr {
    border:     none;
    border-top: 1px solid var(--color-border, #e0e0e0);
    margin:     2em 0;
}

/* ── Abstract / scientific sections ──────────────────────────────────── */
.article-abstract {
    background:    var(--color-gray-50, #fafafa);
    border-left:   4px solid var(--color-primary, #1a73e8);
    border-radius: 0 var(--radius-md, 6px) var(--radius-md, 6px) 0;
    padding:       1.25em 1.5em;
    margin-bottom: 2em;
}
.article-abstract h2 {
    font-size:     var(--text-xl, 1.125rem);
    margin-top:    0;
    margin-bottom: .5em;
}

/* ── Keywords ─────────────────────────────────────────────────────────── */
.article-keywords {
    display:     flex;
    flex-wrap:   wrap;
    gap:         .4em;
    margin-bottom: 1.5em;
}
.article-keywords .keyword-tag {
    background:    var(--color-gray-100, #f5f5f5);
    border:        1px solid var(--color-border, #e0e0e0);
    border-radius: 3px;
    font-size:     var(--text-xs, .75rem);
    padding:       .2em .6em;
    color:         var(--color-text-secondary, #444);
}
