/**
 * Global Typography System
 * Instant Knowledge Base Plugin
 * 
 * This file contains all typography rules that apply consistently
 * across all layout styles, templates, FAQs, category pages, article pages,
 * sidebars, and search results.
 * 
 * DO NOT override these rules in template-specific files unless
 * absolutely necessary for template functionality.
 */

/* ===== CSS VARIABLES - TYPOGRAPHY ===== */
:root {
    /* Base Typography */
    --ikbase-font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    --ikbase-font-size-base: 16px;
    --ikbase-line-height-base: 1.7;
    --ikbase-color-text: #1f2937;
    --ikbase-color-text-muted: #6b7280;
    --ikbase-color-text-muted-secondary: #9ca3af;
    
    /* Headings */
    --ikbase-h1-size: 32px;
    --ikbase-h1-line-height: 1.25;
    --ikbase-h1-weight: 700;
    
    --ikbase-h2-size: 24px;
    --ikbase-h2-line-height: 1.35;
    --ikbase-h2-weight: 600;
    
    --ikbase-h3-size: 20px;
    --ikbase-h3-line-height: 1.4;
    --ikbase-h3-weight: 600;
    
    --ikbase-h4-size: 18px;
    --ikbase-h4-line-height: 1.45;
    --ikbase-h4-weight: 600;
    
    /* Meta / Secondary Text */
    --ikbase-font-size-meta: 14px;
    --ikbase-font-size-meta-small: 13px;
    --ikbase-font-size-input: 16px;
    --ikbase-font-size-caption: 12px;
    
    /* Code */
    --ikbase-font-size-code-inline: 15px;
    --ikbase-font-size-code-block: 14px;
    --ikbase-line-height-code: 1.5;
    --ikbase-font-family-code: 'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono', Consolas, 'Courier New', monospace;
    
    /* Callouts */
    --ikbase-font-size-callout: 16px;
    --ikbase-line-height-callout: 1.6;
}

/* Responsive Typography Variables */
@media (max-width: 768px) {
    :root {
        --ikbase-h1-size: 26px;
        --ikbase-h2-size: 22px;
        --ikbase-h3-size: 19px;
    }
}

/* ===== BASE TYPOGRAPHY ===== */

/* Apply base font to all plugin content (exclude icons) */
.ikbase-plugin,
.ikbase-plugin *:not(.dashicons):not([class*="ikbase-icon"]):not(i[class*="fa-"]):not(.icon),
.ikbase-style-default,
.ikbase-style-default *:not(.dashicons):not([class*="ikbase-icon"]):not(i[class*="fa-"]):not(.icon),
.ikbase-style-compact,
.ikbase-style-compact *:not(.dashicons):not([class*="ikbase-icon"]):not(i[class*="fa-"]):not(.icon),
.ikbase-style-content-focus,
.ikbase-style-content-focus *:not(.dashicons):not([class*="ikbase-icon"]):not(i[class*="fa-"]):not(.icon),
.ikbase-style-help-center-modern,
.ikbase-style-help-center-modern *:not(.dashicons):not([class*="ikbase-icon"]):not(i[class*="fa-"]):not(.icon),
.ikbase-style-opt-in-focus,
.ikbase-style-opt-in-focus *:not(.dashicons):not([class*="ikbase-icon"]):not(i[class*="fa-"]):not(.icon),
.ikbase-style-opt-in-focus-v2,
.ikbase-style-opt-in-focus-v2 *:not(.dashicons):not([class*="ikbase-icon"]):not(i[class*="fa-"]):not(.icon) {
    font-family: var(--ikbase-font-family);
}

/* Base body text */
.ikbase-plugin,
.ikbase-article-body,
.ikbase-category-description,
.ikbase-faq-content,
.ikbase-search-results,
.ikbase-article-description,
.ikbase-article-excerpt {
    font-size: var(--ikbase-font-size-base);
    line-height: var(--ikbase-line-height-base);
    color: var(--ikbase-color-text);
}

/* Paragraphs */
.ikbase-plugin p,
.ikbase-article-body p,
.ikbase-faq-content p,
.ikbase-category-description p {
    font-size: var(--ikbase-font-size-base);
    line-height: var(--ikbase-line-height-base);
    margin-bottom: 1em;
}

.ikbase-plugin p:last-child,
.ikbase-article-body p:last-child {
    margin-bottom: 0;
}

/* ===== HEADINGS ===== */

/* H1 - Article Titles, Page Titles */
.ikbase-plugin h1,
.ikbase-article-title,
.ikbase-centered-title,
.ikbase-page-title,
.ikbase-archive-title,
h1.ikbase-centered-title {
    font-size: var(--ikbase-h1-size) !important;
    line-height: var(--ikbase-h1-line-height) !important;
    font-weight: var(--ikbase-h1-weight) !important;
    margin-bottom: 1rem !important;
}

/* H2 - Section Headings */
.ikbase-plugin h2,
.ikbase-article-body h2,
.ikbase-topic-title,
.ikbase-most-read h2,
.ikbase-help-topics h3,
.ikbase-faq-topic-section h2 {
    font-size: var(--ikbase-h2-size) !important;
    line-height: var(--ikbase-h2-line-height) !important;
    font-weight: var(--ikbase-h2-weight) !important;
    margin-top: 1.5em !important;
    margin-bottom: 0.75em !important;
}

/* H3 - Subsections */
.ikbase-plugin h3,
.ikbase-article-body h3,
.ikbase-sidebar-title,
.ikbase-toc-title,
.ikbase-faq-question h3 {
    font-size: var(--ikbase-h3-size) !important;
    line-height: var(--ikbase-h3-line-height) !important;
    font-weight: var(--ikbase-h3-weight) !important;
    margin-top: 1.25em !important;
    margin-bottom: 0.5em !important;
}

/* H4 - Minor Headings / Labels */
.ikbase-plugin h4,
.ikbase-article-body h4,
.ikbase-also-read h4,
.ikbase-helpful-title {
    font-size: var(--ikbase-h4-size) !important;
    line-height: var(--ikbase-h4-line-height) !important;
    font-weight: var(--ikbase-h4-weight) !important;
    margin-top: 1em !important;
    margin-bottom: 0.5em !important;
}

/* H5 & H6 - Smallest Headings */
.ikbase-plugin h5,
.ikbase-article-body h5 {
    font-size: 16px !important;
    line-height: 1.5 !important;
    font-weight: 600 !important;
    margin-top: 1em !important;
    margin-bottom: 0.5em !important;
}

.ikbase-plugin h6,
.ikbase-article-body h6 {
    font-size: 15px !important;
    line-height: 1.5 !important;
    font-weight: 600 !important;
    margin-top: 1em !important;
    margin-bottom: 0.5em !important;
}

/* ===== LISTS ===== */

.ikbase-plugin ul,
.ikbase-plugin ol,
.ikbase-article-body ul,
.ikbase-article-body ol,
.ikbase-faq-content ul,
.ikbase-faq-content ol {
    font-size: var(--ikbase-font-size-base);
    line-height: var(--ikbase-line-height-base);
    margin: 1em 0;
    padding-left: 1.75em;
}

.ikbase-plugin li,
.ikbase-article-body li,
.ikbase-faq-content li {
    font-size: var(--ikbase-font-size-base);
    line-height: var(--ikbase-line-height-base);
    margin-bottom: 8px;
}

.ikbase-plugin li:last-child,
.ikbase-article-body li:last-child {
    margin-bottom: 0;
}

/* Nested lists */
.ikbase-plugin li ul,
.ikbase-plugin li ol,
.ikbase-article-body li ul,
.ikbase-article-body li ol {
    margin-top: 8px;
    margin-bottom: 0;
}

/* ===== META / SECONDARY TEXT ===== */

/* Breadcrumbs */
.ikbase-breadcrumb,
.ikbase-breadcrumbs,
.ikbase-breadcrumb-link,
.ikbase-breadcrumb-current {
    font-size: var(--ikbase-font-size-meta) !important;
    line-height: 1.5 !important;
}

/* Timestamps, Last Updated, Helper Text */
.ikbase-article-metadata,
.ikbase-publish-date,
.ikbase-view-count,
.ikbase-article-stats,
.ikbase-last-updated,
.ikbase-category-count,
.ikbase-article-count,
.ikbase-faq-count {
    font-size: var(--ikbase-font-size-meta) !important;
    line-height: 1.5 !important;
}

/* Very small meta text */
.ikbase-breadcrumb-separator,
.ikbase-article-type,
.ikbase-subcategory-count,
.ikbase-nav-subcategory-count {
    font-size: var(--ikbase-font-size-meta-small) !important;
}

/* ===== CODE ===== */

/* Inline code */
.ikbase-plugin code,
.ikbase-article-body code,
.ikbase-faq-content code {
    font-family: var(--ikbase-font-family-code) !important;
    font-size: var(--ikbase-font-size-code-inline) !important;
    line-height: 1.4 !important;
    background-color: #f3f4f6 !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 4px !important;
    padding: 2px 6px !important;
    color: #dc2626 !important;
    white-space: nowrap !important;
}

/* Code blocks */
.ikbase-plugin pre,
.ikbase-article-body pre,
.ikbase-faq-content pre {
    font-family: var(--ikbase-font-family-code) !important;
    font-size: var(--ikbase-font-size-code-block) !important;
    line-height: var(--ikbase-line-height-code) !important;
    background-color: #1f2937 !important;
    border-radius: 8px !important;
    padding: 16px !important;
    margin: 1.5em 0 !important;
    overflow-x: auto !important;
    color: #f3f4f6 !important;
}

.ikbase-plugin pre code,
.ikbase-article-body pre code,
.ikbase-faq-content pre code {
    background: none !important;
    border: none !important;
    padding: 0 !important;
    color: inherit !important;
    font-size: inherit !important;
    line-height: inherit !important;
    white-space: pre !important;
    word-break: normal !important;
}

/* ===== CALLOUTS (NOTES, TIPS, WARNINGS) ===== */

.ikbase-plugin .ikbase-tip-box,
.ikbase-plugin .ikbase-info-box,
.ikbase-plugin .ikbase-warning-box,
.ikbase-tip-box,
.ikbase-info-box,
.ikbase-warning-box,
.ikbase-note,
.ikbase-callout {
    font-size: var(--ikbase-font-size-callout) !important;
    line-height: var(--ikbase-line-height-callout) !important;
}

.ikbase-plugin .ikbase-tip-content,
.ikbase-plugin .ikbase-info-content,
.ikbase-plugin .ikbase-warning-content,
.ikbase-tip-content,
.ikbase-info-content,
.ikbase-warning-content {
    font-size: var(--ikbase-font-size-callout) !important;
    line-height: var(--ikbase-line-height-callout) !important;
}

.ikbase-plugin .ikbase-tip-content p,
.ikbase-plugin .ikbase-info-content p,
.ikbase-plugin .ikbase-warning-content p {
    font-size: inherit !important;
    line-height: inherit !important;
}

/* ===== TABLES ===== */

.ikbase-plugin table,
.ikbase-article-body table {
    font-size: var(--ikbase-font-size-base);
    line-height: 1.6;
    border-collapse: collapse;
    width: 100%;
    margin: 1.5em 0;
}

.ikbase-plugin table th,
.ikbase-article-body table th {
    font-size: var(--ikbase-font-size-base);
    font-weight: 600;
    line-height: 1.5;
    padding: 12px;
    text-align: left;
    background-color: #f3f4f6;
    border: 1px solid #e5e7eb;
}

.ikbase-plugin table td,
.ikbase-article-body table td {
    font-size: var(--ikbase-font-size-base);
    line-height: 1.6;
    padding: 12px;
    border: 1px solid #e5e7eb;
}

/* ===== SIDEBAR TYPOGRAPHY ===== */

/* Sidebar navigation - Now handled in List Typography section for proper hierarchy */
/* Category toggles are 16px/600, article links are 14px/400 */

/* Sidebar titles (aligned with H3 scale; global h3/h4 blocks also target these) */
.ikbase-accordion-header h4 {
    font-size: var(--ikbase-h4-size) !important;
    font-weight: var(--ikbase-h4-weight) !important;
    line-height: var(--ikbase-h4-line-height) !important;
}

/* ===== SEARCH RESULTS TYPOGRAPHY ===== */

.ikbase-search-results h2,
.ikbase-no-results h2 {
    font-size: var(--ikbase-h2-size) !important;
    line-height: var(--ikbase-h2-line-height) !important;
    font-weight: var(--ikbase-h2-weight) !important;
}

.ikbase-search-excerpt,
.ikbase-article-excerpt {
    font-size: var(--ikbase-font-size-meta) !important;
    line-height: var(--ikbase-line-height-base) !important;
}

/* ===== FAQ TYPOGRAPHY ===== */

/* FAQ Answer/Content */
.ikbase-faq-answer,
.ikbase-faq-content {
    font-size: var(--ikbase-font-size-base) !important;
    line-height: var(--ikbase-line-height-base) !important;
}

/* FAQ Topic Title */
.ikbase-topic-title {
    font-size: var(--ikbase-h2-size) !important;
    line-height: var(--ikbase-h2-line-height) !important;
    font-weight: var(--ikbase-h2-weight) !important;
}

/* ===== KNOWLEDGE BASE CARD TYPOGRAPHY ===== */
/* Standardized typography for all KB cards across all layouts */

/* Card Title - Used for category names, article titles in cards, FAQ titles */
.ikbase-category-title,
.ikbase-category-name,
.ikbase-category-name-minimalist,
.ikbase-article-item h3,
.ikbase-article-item a,
.ikbase-article-header h3,
.ikbase-card-title,
.ikbase-category-item h3,
.ikbase-category-item h4,
.ikbase-topic-title-card {
    font-size: var(--ikbase-h4-size) !important;
    font-weight: var(--ikbase-h4-weight) !important;
    line-height: var(--ikbase-h4-line-height) !important;
}

/* Card Description / Subtitle — scoped to cards/lists, not hero or content headers */
.ikbase-category-card .ikbase-category-description,
.ikbase-category-item-minimalist .ikbase-category-description,
.ikbase-article-description,
.ikbase-article-excerpt,
.ikbase-search-excerpt,
.ikbase-card-description,
.ikbase-card-subtitle,
.ikbase-topic-description {
    font-size: var(--ikbase-font-size-meta) !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;
    color: var(--ikbase-color-text-muted) !important;
}

/* Hero / marketing headers: category intro copy inherits contrast from parent */
.ikbase-hero .ikbase-category-description,
.ikbase-hero-content .ikbase-category-description,
.ikbase-content-header .ikbase-category-description {
    font-size: var(--ikbase-font-size-base) !important;
    line-height: var(--ikbase-line-height-base) !important;
    font-weight: 400 !important;
    color: inherit !important;
}

/* Card Links / Items - Used for article links within cards, FAQ content links */
.ikbase-article-item-minimalist,
.ikbase-faq-content a,
.ikbase-related-articles a,
.ikbase-card-link,
.ikbase-nav-item a {
    font-size: var(--ikbase-font-size-meta) !important;
    font-weight: 500 !important;
    line-height: 1.6 !important;
}

/* Note: .ikbase-category-articles a and .ikbase-also-read-item a moved to List Typography section */

/* Card Meta Text - Article counts, category counts */
.ikbase-category-count,
.ikbase-article-count,
.ikbase-faq-count,
.ikbase-category-articles-minimalist,
.ikbase-card-meta {
    font-size: var(--ikbase-font-size-meta-small) !important;
    font-weight: 500 !important;
    line-height: 1.4 !important;
}

/* ===== KNOWLEDGE BASE LIST/ROW TYPOGRAPHY ===== */
/* Standardized typography for all KB list-style rows across all layouts */

/* Category Names (Parent/Section Headers) - 16px, bold */
.ikbase-related-category-name,
.ikbase-nav-toggle,
.ikbase-category-name-row,
.ikbase-section-title-row {
    font-size: var(--ikbase-font-size-base) !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
}

/* Article Titles (Sub-items/Navigation Links) - 14px, normal weight */
/* These are subordinate to category names and must be visually lighter */
.ikbase-nav-link,
.ikbase-category-articles a,
.ikbase-nav-list a,
.ikbase-also-read-item a,
.ikbase-sidebar-sections a,
.ikbase-sidebar-categories a {
    font-size: var(--ikbase-font-size-meta) !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;
}

/* Other Row Titles - FAQ titles, search results (remain 16px, bold) */
.ikbase-related-faq-title,
.ikbase-list-item-title,
.ikbase-row-title,
.ikbase-search-result-title {
    font-size: var(--ikbase-font-size-base) !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
}

/* Row Description - Used for excerpts, descriptions in list view */
.ikbase-related-faq-excerpt,
.ikbase-list-item-description,
.ikbase-row-description,
.ikbase-search-result-excerpt,
.ikbase-nav-item-description {
    font-size: var(--ikbase-font-size-meta) !important;
    font-weight: 400 !important;
    line-height: 1.6 !important;
    color: var(--ikbase-color-text-muted) !important;
}

/* Row Meta Information - Used for read time, view count, date in lists */
.ikbase-related-category-count,
.ikbase-list-item-meta,
.ikbase-row-meta,
.ikbase-nav-subcategory-count,
.ikbase-search-result-meta,
.ikbase-list-meta {
    font-size: var(--ikbase-font-size-meta-small) !important;
    font-weight: 400 !important;
    line-height: 1.4 !important;
    color: var(--ikbase-color-text-muted-secondary) !important;
}

/* ===== TABLE OF CONTENTS TYPOGRAPHY ===== */

.ikbase-toc-link {
    font-size: var(--ikbase-font-size-meta) !important;
    line-height: 1.5 !important;
}

.ikbase-toc-link.level-h3 {
    font-size: var(--ikbase-font-size-meta-small) !important;
}

.ikbase-toc-link.level-h4 {
    font-size: var(--ikbase-font-size-caption) !important;
}

/* ===== BUTTON & LINK TYPOGRAPHY ===== */

.ikbase-plugin button,
.ikbase-plugin .button,
.ikbase-cta-button,
.ikbase-helpful-btn {
    font-size: var(--ikbase-font-size-base) !important;
    line-height: 1.5 !important;
    font-weight: 500 !important;
}

.ikbase-search-button {
    font-size: var(--ikbase-font-size-base) !important;
    line-height: 1.5 !important;
    font-weight: 600 !important;
}

/* ===== RESPONSIVE TYPOGRAPHY ===== */

@media (max-width: 768px) {
    /* Base adjustments already handled by CSS variables */
    
    /* Keep paragraphs at 16px on mobile */
    .ikbase-plugin p,
    .ikbase-article-body p,
    .ikbase-faq-content p {
        font-size: var(--ikbase-font-size-base) !important;
    }
    
    /* Adjust meta text for mobile */
    .ikbase-breadcrumb,
    .ikbase-breadcrumbs {
        font-size: 13px !important;
    }
    
    .ikbase-article-metadata,
    .ikbase-publish-date,
    .ikbase-view-count {
        font-size: 13px !important;
    }
    
    /* Adjust code for mobile */
    .ikbase-plugin code,
    .ikbase-article-body code {
        font-size: 14px !important;
    }
    
    .ikbase-plugin pre,
    .ikbase-article-body pre {
        font-size: 13px !important;
        padding: 12px !important;
    }
    
    /* Adjust callouts for mobile */
    .ikbase-plugin .ikbase-tip-box,
    .ikbase-plugin .ikbase-info-box,
    .ikbase-plugin .ikbase-warning-box {
        font-size: 15px !important;
    }
    
    /* Adjust table text for mobile */
    .ikbase-plugin table th,
    .ikbase-plugin table td {
        font-size: 14px !important;
        padding: 8px !important;
    }
    
}

@media (max-width: 480px) {
    /* Further mobile refinements */
    /* Note: Card typography remains at 18px/14px per specification */
    /* Only breadcrumbs get smaller on very small screens */
    
    .ikbase-breadcrumb {
        font-size: 12px !important;
    }
}

/* ===== CONSISTENCY OVERRIDES ===== */
/* These ensure typography applies even if other styles try to override */

.ikbase-plugin * {
    font-family: var(--ikbase-font-family) !important;
}

/* Prevent template-specific overrides for core typography (all layout body classes) */
.ikbase-style-default .ikbase-plugin p,
.ikbase-style-default .ikbase-plugin li,
.ikbase-style-compact .ikbase-plugin p,
.ikbase-style-compact .ikbase-plugin li,
.ikbase-style-content-focus .ikbase-plugin p,
.ikbase-style-content-focus .ikbase-plugin li,
.ikbase-style-help-center-modern .ikbase-plugin p,
.ikbase-style-help-center-modern .ikbase-plugin li,
.ikbase-style-opt-in-focus .ikbase-plugin p,
.ikbase-style-opt-in-focus .ikbase-plugin li,
.ikbase-plugin.ikbase-style-opt-in-focus-v2 p,
.ikbase-plugin.ikbase-style-opt-in-focus-v2 li,
.ikbase-style-opt-in-focus-v2 .ikbase-plugin p,
.ikbase-style-opt-in-focus-v2 .ikbase-plugin li,
.ikbase-style-default .ikbase-article-body,
.ikbase-style-default .ikbase-faq-content,
.ikbase-style-compact .ikbase-article-body,
.ikbase-style-compact .ikbase-faq-content,
.ikbase-style-content-focus .ikbase-article-body,
.ikbase-style-content-focus .ikbase-faq-content,
.ikbase-style-help-center-modern .ikbase-article-body,
.ikbase-style-help-center-modern .ikbase-faq-content,
.ikbase-style-opt-in-focus .ikbase-article-body,
.ikbase-style-opt-in-focus .ikbase-faq-content,
.ikbase-plugin.ikbase-style-opt-in-focus-v2 .ikbase-article-body,
.ikbase-plugin.ikbase-style-opt-in-focus-v2 .ikbase-faq-content,
.ikbase-style-opt-in-focus-v2 .ikbase-article-body,
.ikbase-style-opt-in-focus-v2 .ikbase-faq-content {
    font-size: var(--ikbase-font-size-base) !important;
    line-height: var(--ikbase-line-height-base) !important;
}

/* ===== ICON PROTECTION ===== */
/* Prevent typography system from affecting icons */

/* Dashicons */
.dashicons,
.ikbase-plugin .dashicons,
span.dashicons,
i.dashicons {
    font-family: 'dashicons' !important;
    font-size: 20px !important;
    line-height: 1 !important;
    width: 20px !important;
    height: 20px !important;
    vertical-align: middle !important;
}

/* IKBase custom icons */
.ikbase-icon,
[class*="ikbase-icon-"],
span[class*="ikbase-icon-"],
.ikbase-category-icon .ikbase-icon {
    font-family: 'ikbase-icons' !important;
    font-size: 24px !important;
    line-height: 1 !important;
}

/* Font Awesome icons */
.fa,
.fas,
.far,
.fal,
.fab,
[class*=" fa-"],
[class^="fa-"] {
    font-family: 'Font Awesome 5 Free', 'FontAwesome' !important;
}

/* Generic icon class */
.icon,
i.icon {
    line-height: 1 !important;
}

/* Help Topics Category Icons */
.ikbase-category-icon {
    font-size: 24px !important;
    line-height: 1 !important;
}

.ikbase-category-icon .ikbase-icon,
.ikbase-category-icon span {
    font-size: 24px !important;
    line-height: 1 !important;
}

/* Helpful Section Icons */
.ikbase-helpful-btn .dashicons {
    font-size: 16px !important;
    width: 16px !important;
    height: 16px !important;
}

/* TOC Icon */
.ikbase-toc-title .dashicons {
    font-size: 18px !important;
    width: 18px !important;
    height: 18px !important;
    margin-right: 8px !important;
}

/* Search Icon */
.ikbase-search-submit .dashicons,
.ikbase-hero-search-icon .dashicons {
    font-size: 20px !important;
    width: 20px !important;
    height: 20px !important;
}

/* Sidebar Icons */
.ikbase-categories-sidebar .dashicons,
.ikbase-documentation-sidebar .dashicons {
    font-size: 16px !important;
    width: 16px !important;
    height: 16px !important;
}

/* Breadcrumb Icons */
.ikbase-breadcrumb .dashicons {
    font-size: 14px !important;
    width: 14px !important;
    height: 14px !important;
}

/* ===== ACCESSIBILITY ===== */

/* Ensure sufficient contrast for all text */
.ikbase-plugin {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

/* Focus states should have proper typography */
.ikbase-plugin a:focus,
.ikbase-plugin button:focus {
    outline-offset: 2px;
}

/* ===== PRINT STYLES ===== */

@media print {
    .ikbase-plugin,
    .ikbase-article-body {
        font-size: 12pt;
        line-height: 1.5;
    }
    
    .ikbase-plugin h1 {
        font-size: 24pt;
    }
    
    .ikbase-plugin h2 {
        font-size: 18pt;
    }
    
    .ikbase-plugin h3 {
        font-size: 14pt;
    }
    
    .ikbase-plugin h4 {
        font-size: 13pt;
    }
    
    .ikbase-plugin code,
    .ikbase-plugin pre {
        font-size: 10pt;
    }
}
