/* CAIRO FONT - TARGETED APPROACH ONLY */

/* Only target specific text elements, NO wildcards */
html, body {
    font-family: 'Cairo', sans-serif !important;
}

/* Headings */
h1, h2, h3, h4, h5, h6 {
    font-family: 'Cairo', sans-serif !important;
}

/* Text elements */
p, span.text, div.text-content, 
blockquote, pre.text,
a.text-link,
small, strong, b, u, center,
dl, dt, dd, ol, ul, li.text,
label.text, legend,
td.text, th.text,
article, aside, 
figure, figcaption, footer.text, header.text,
time, mark {
    font-family: 'Cairo', sans-serif !important;
}

/* Bootstrap and framework overrides */
.h1, .h2, .h3, .h4, .h5, .h6,
h1, h2, h3, h4, h5, h6 {
    font-family: 'Cairo', sans-serif !important;
    font-weight: 700 !important;
}

.fw-bold, .fw-semibold, .font-weight-bold, .font-weight-semibold {
    font-family: 'Cairo', sans-serif !important;
}

.btn, button, input, select, textarea {
    font-family: 'Cairo', sans-serif !important;
}

.card-title, .card-text, .card-body {
    font-family: 'Cairo', sans-serif !important;
}

.navbar-brand, .nav-link, .navbar-nav {
    font-family: 'Cairo', sans-serif !important;
}

/* Target specific content classes only */
.card-title, .card-text, .card-body p {
    font-family: 'Cairo', sans-serif !important;
}

.text-content, .description, .title {
    font-family: 'Cairo', sans-serif !important;
}

/* Ensure Cairo loads first and fallbacks are minimal */
@import url('https://fonts.googleapis.com/css2?family=Cairo:wght@200;300;400;500;600;700;800;900&display=swap');

/* Additional weight variations for Cairo */
@font-face {
    font-family: 'Cairo';
    font-style: normal;
    font-weight: 200 900;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/cairo/v17/SLXVc1nY6HkvalIhTp2mxdt0UX8.woff2) format('woff2');
    unicode-range: U+0600-06FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE80-FEFC;
}

/* Override root CSS variables if they exist */
:root {
    --font-family-sans-serif: 'Cairo', sans-serif !important;
    --font-family-base: 'Cairo', sans-serif !important;
    --bs-font-sans-serif: 'Cairo', sans-serif !important;
}

/* PRESERVE ICON FONTS - CRITICAL - EXCLUDE FROM CAIRO */
/* DO NOT APPLY CAIRO TO ICONS */
i:not(.text):not(.arabic-text):not([class*="text-"]), 
[class*="ti-"]:not(.text):not(.arabic-text),
[class*="icon-"]:not(.text):not(.arabic-text),
[class*="fa-"]:not(.text):not(.arabic-text),
[class*="feather-"]:not(.text):not(.arabic-text),
[class*="material-"]:not(.text):not(.arabic-text),
[class*="phosphor-"]:not(.text):not(.arabic-text),
[class*="tabler-"]:not(.text):not(.arabic-text),
.ti:not(.text):not(.arabic-text),
.fa:not(.text):not(.arabic-text),
.feather:not(.text):not(.arabic-text),
.material-icons:not(.text):not(.arabic-text),
.pc-icon:not(.text):not(.arabic-text) {
    font-family: inherit !important;
}

/* Specific icon font families */
.ti-circle-check {
    font-family: 'tabler-icons' !important;
}

.feather {
    font-family: 'feather' !important;
}

[class^="ph-"], [class*=" ph-"] {
    font-family: 'Phosphor' !important;
}

/* Ensure icons display correctly */
i[class*="ti-"]::before,
i[class*="fa-"]::before,
i[class*="feather-"]::before,
i[class*="material-"]::before,
i[class*="phosphor-"]::before,
i[class*="tabler-"]::before {
    font-family: inherit !important;
}

/* ULTIMATE ICON FONT PRESERVATION - MUST COME LAST */
i, i::before, i::after,
[class*="ti-"], [class*="ti-"]::before, [class*="ti-"]::after,
[class*="icon-"], [class*="icon-"]::before, [class*="icon-"]::after,
[class*="fa-"], [class*="fa-"]::before, [class*="fa-"]::after,
[class*="feather-"], [class*="feather-"]::before, [class*="feather-"]::after,
[class*="material-"], [class*="material-"]::before, [class*="material-"]::after,
[class*="phosphor-"], [class*="phosphor-"]::before, [class*="phosphor-"]::after,
[class*="tabler-"], [class*="tabler-"]::before, [class*="tabler-"]::after {
    font-family: inherit !important;
    font-style: normal !important;
    font-weight: normal !important;
    font-variant: normal !important;
    text-transform: none !important;
    line-height: 1 !important;
    -webkit-font-smoothing: antialiased !important;
    -moz-osx-font-smoothing: grayscale !important;
}