/* Comprehensive font support for all 14 languages */

/* Import Google Fonts for comprehensive language support */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,400;0,700;1,400;1,700&family=Noto+Sans+Arabic:wght@400;700&family=Noto+Sans+Bengali:wght@400;700&family=Noto+Sans+Devanagari:wght@400;700&family=Noto+Sans+Ethiopic:wght@400;700&family=Noto+Sans+Gujarati:wght@400;700&family=Noto+Sans+Gurmukhi:wght@400;700&family=Noto+Sans+Hebrew:wght@400;700&family=Noto+Sans+Kannada:wght@400;700&family=Noto+Sans+Myanmar:wght@400;700&family=Noto+Sans+JP:wght@400;700&family=Noto+Sans+KR:wght@400;700&family=Noto+Sans+SC:wght@400;700&family=Noto+Sans+Tamil:wght@400;700&family=Noto+Sans+Telugu:wght@400;700&family=Noto+Sans+Thai:wght@400;700&family=Noto+Sans+Khmer:wght@400;700&display=swap');

/* Base font stack - fallback for all languages */
body {
    font-family: 'Georgia', 'Times New Roman', serif;
}

/* Language-specific font stacks */

/* English (en) - Default serif */
[lang="en"] {
    font-family: 'Georgia', 'Times New Roman', serif;
}

/* Spanish (es) - Default serif */
[lang="es"] {
    font-family: 'Georgia', 'Times New Roman', serif;
}

/* French (fr) - Default serif */
[lang="fr"] {
    font-family: 'Georgia', 'Times New Roman', serif;
}

/* Portuguese (pt) - Default serif */
[lang="pt"] {
    font-family: 'Georgia', 'Times New Roman', serif;
}

/* Italian (it) - Default serif */
[lang="it"] {
    font-family: 'Georgia', 'Times New Roman', serif;
}

/* German (de) - Default serif */
[lang="de"] {
    font-family: 'Georgia', 'Times New Roman', serif;
}

/* Dutch (nl) - Default serif */
[lang="nl"] {
    font-family: 'Georgia', 'Times New Roman', 'Noto Sans', system-ui, serif;
}

/* Polish (pl) - Default serif */
[lang="pl"] {
    font-family: 'Georgia', 'Times New Roman', 'Noto Sans', system-ui, serif;
}

/* Romanian (ro) - Default serif */
[lang="ro"] {
    font-family: 'Georgia', 'Times New Roman', 'Noto Sans', system-ui, serif;
}

/* Azerbaijani (az) - Default serif */
[lang="az"] {
    font-family: 'Georgia', 'Times New Roman', 'Noto Sans', system-ui, serif;
}

/* Uzbek (uz) - Default serif */
[lang="uz"] {
    font-family: 'Georgia', 'Times New Roman', 'Noto Sans', system-ui, serif;
}

/* Swahili (sw) - Default serif */
[lang="sw"] {
    font-family: 'Georgia', 'Times New Roman', serif;
}

/* Ukrainian (uk) - Noto Sans with Cyrillic support */
[lang="uk"] {
    font-family: 'Noto Sans', 'Arial', sans-serif;
}

/* Russian (ru) - Noto Sans with Cyrillic support */
[lang="ru"] {
    font-family: 'Noto Sans', 'Arial', sans-serif;
}

/* Hindi (hi) - Noto Sans Devanagari */
[lang="hi"] {
    font-family: 'Noto Sans Devanagari', 'Noto Sans', sans-serif;
}

/* Marathi (mr) - Noto Sans Devanagari */
[lang="mr"] {
    font-family: 'Noto Sans Devanagari', 'Noto Sans', sans-serif;
}

/* Bengali (bn) - Noto Sans Bengali */
[lang="bn"] {
    font-family: 'Noto Sans Bengali', 'Noto Sans', sans-serif;
}

/* Punjabi (pa) - Noto Sans Gurmukhi */
[lang="pa"] {
    font-family: 'Noto Sans Gurmukhi', 'Noto Sans', sans-serif;
}

/* Gujarati (gu) - Noto Sans Gujarati */
[lang="gu"] {
    font-family: 'Noto Sans Gujarati', 'Noto Sans', sans-serif;
}

/* Kannada (kn) - Noto Sans Kannada */
[lang="kn"] {
    font-family: 'Noto Sans Kannada', 'Noto Sans', sans-serif;
}

/* Telugu (te) - Noto Sans Telugu */
[lang="te"] {
    font-family: 'Noto Sans Telugu', 'Noto Sans', sans-serif;
}

/* Tamil (ta) - Noto Sans Tamil */
[lang="ta"] {
    font-family: 'Noto Sans Tamil', 'Noto Sans', sans-serif;
}

/* Arabic (ar) - Noto Sans Arabic with RTL support */
[lang="ar"] {
    font-family: 'Noto Sans Arabic', 'Arial', sans-serif;
    direction: rtl;
    text-align: right;
}

/* Urdu (ur) - Noto Sans Arabic with RTL support */
[lang="ur"] {
    font-family: 'Noto Sans Arabic', 'Arial', sans-serif;
    direction: rtl;
    text-align: right;
}

/* Persian (fa) - Noto Sans Arabic with RTL support */
[lang="fa"] {
    font-family: 'Noto Sans Arabic', 'Arial', sans-serif;
    direction: rtl;
    text-align: right;
}

/* Hebrew (he) - Noto Sans Hebrew with RTL support */
[lang="he"] {
    font-family: 'Noto Sans Hebrew', 'Noto Sans', sans-serif;
    direction: rtl;
    text-align: right;
}

/* Chinese Simplified (zh) - Noto Sans SC */
[lang="zh"] {
    font-family: 'Noto Sans SC', 'Microsoft YaHei', '微软雅黑', 'SimHei', '黑体', sans-serif;
}

/* Yue Chinese (yue) - Noto Sans SC */
[lang="yue"] {
    font-family: 'Noto Sans SC', 'Microsoft YaHei', '微软雅黑', 'SimHei', '黑体', sans-serif;
}

/* Wu Chinese (wuu) - Noto Sans SC */
[lang="wuu"] {
    font-family: 'Noto Sans SC', 'Microsoft YaHei', '微软雅黑', 'SimHei', '黑体', sans-serif;
}

/* Japanese (ja) - Noto Sans JP */
[lang="ja"] {
    font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro W3', 'Meiryo', 'メイリオ', sans-serif;
}

/* Korean (ko) - Noto Sans KR */
[lang="ko"] {
    font-family: 'Noto Sans KR', 'Malgun Gothic', '맑은 고딕', 'Apple SD Gothic Neo', sans-serif;
}

/* Thai (th) - Noto Sans Thai */
[lang="th"] {
    font-family: 'Noto Sans Thai', 'Tahoma', sans-serif;
}

/* Khmer (km) - Noto Sans Khmer */
[lang="km"] {
    font-family: 'Noto Sans Khmer', 'Khmer OS', sans-serif;
}

/* Burmese (my) - Noto Sans Myanmar */
[lang="my"] {
    font-family: 'Noto Sans Myanmar', 'Noto Sans', sans-serif;
}

/* Amharic (am) - Noto Sans Ethiopic */
[lang="am"] {
    font-family: 'Noto Sans Ethiopic', 'Noto Sans', sans-serif;
}

/* Vietnamese (vi) - Default serif */
[lang="vi"] {
    font-family: 'Georgia', 'Times New Roman', 'Noto Sans', system-ui, serif;
}

/* Turkish (tr) - Default serif */
[lang="tr"] {
    font-family: 'Georgia', 'Times New Roman', 'Noto Sans', system-ui, serif;
}

/* Indonesian (id) - Default serif */
[lang="id"] {
    font-family: 'Georgia', 'Times New Roman', 'Noto Sans', system-ui, serif;
}

/* Malay (ms) - Default serif */
[lang="ms"] {
    font-family: 'Georgia', 'Times New Roman', 'Noto Sans', system-ui, serif;
}

/* Hausa (ha) - Default serif */
[lang="ha"] {
    font-family: 'Georgia', 'Times New Roman', 'Noto Sans', system-ui, serif;
}

/* Javanese (jv) - Default serif */
[lang="jv"] {
    font-family: 'Georgia', 'Times New Roman', 'Noto Sans', system-ui, serif;
}

/* Monospace fonts for code/hash display - language agnostic */
.monospace, .hash-value, code, pre {
    font-family: 'Consolas', 'Monaco', 'Courier New', monospace !important;
}

/* Ensure proper font loading and fallbacks */
@font-face {
    font-family: 'Noto Sans Fallback';
    src: local('Arial'), local('Helvetica'), local('sans-serif');
    font-display: swap;
}

/* Font size adjustments for different scripts */

/* Larger font sizes for complex scripts */
[lang="ar"], [lang="ur"], [lang="fa"], [lang="hi"], [lang="mr"], [lang="bn"], [lang="pa"], [lang="gu"], [lang="kn"], [lang="te"], [lang="ta"], [lang="th"], [lang="am"], [lang="km"] {
    font-size: 1.05em;
    line-height: 1.6;
}

/* CJK languages - slightly larger for readability */
[lang="zh"], [lang="ja"], [lang="ko"] {
    font-size: 1.02em;
    line-height: 1.5;
}

/* Font weight adjustments */
[lang="ar"] {
    font-weight: 400; /* Arabic looks better with normal weight */
}

[lang="zh"], [lang="ja"], [lang="ko"] {
    font-weight: 400; /* CJK fonts often look better with normal weight */
}

/* Specific adjustments for form elements */
input, select, textarea {
    font-family: inherit;
}

/* Ensure buttons maintain readability */
button, .btn-execute {
    font-family: inherit;
    font-weight: bold;
}

/* Headers maintain language-appropriate fonts */
h1, h2, h3, h4, h5, h6 {
    font-family: inherit;
}

/* Special handling for mixed content */
.mixed-content {
    font-family: 'Noto Sans', 'Arial', sans-serif;
}

/* Ensure proper rendering of special characters */
.special-chars {
    font-variant-numeric: tabular-nums;
}

/* Print styles - ensure fonts work in print */
@media print {
    * {
        font-family: 'Times New Roman', serif !important;
    }
    
    [lang="ar"] {
        font-family: 'Arial', sans-serif !important;
    }
    
    [lang="zh"], [lang="ja"], [lang="ko"] {
        font-family: 'SimSun', serif !important;
    }
}

/* Accessibility - ensure minimum font sizes */
@media (max-width: 768px) {
    body {
        font-size: 16px; /* Minimum readable size on mobile */
    }
    
    [lang="ar"], [lang="hi"], [lang="th"], [lang="km"] {
        font-size: 17px;
    }
    
    [lang="zh"], [lang="ja"], [lang="ko"] {
        font-size: 16px;
    }
}

/* Font loading optimization */
.font-loading {
    font-display: swap;
}

/* Prevent font flash */
.no-font-flash {
    visibility: hidden;
}

.fonts-loaded .no-font-flash {
    visibility: visible;
}

/* Ensure proper line height for all languages */
p, div, span {
    line-height: 1.6;
}

[lang="ar"] p, [lang="ar"] div, [lang="ar"] span,
[lang="ur"] p, [lang="ur"] div, [lang="ur"] span,
[lang="fa"] p, [lang="fa"] div, [lang="fa"] span {
    line-height: 1.8; /* Arabic needs more line height */
}

[lang="th"] p, [lang="th"] div, [lang="th"] span {
    line-height: 1.7; /* Thai needs more line height */
}

/* Number formatting - keep consistent across languages */
.number, .price, .currency {
    font-variant-numeric: tabular-nums;
    direction: ltr;
    unicode-bidi: embed;
}

/* Ensure proper text direction for mixed content */
.ltr-embed {
    direction: ltr;
    unicode-bidi: embed;
}

.rtl-embed {
    direction: rtl;
    unicode-bidi: embed;
}