/* 
   Rule 1: Base Font
   All text uses 'Noto Sans TC' by default.
   Excluded: Material Icons/Symbols to prevent broken icons.
*/
body,
p,
a,
span:not([class*="material-icons"]):not([class*="material-symbols"]),
div,
li,
td,
th {
    font-family: 'Noto Sans TC', sans-serif !important;
}

/* Ensure Material Icons are not overridden */
.material-icons {
    font-family: 'Material Icons' !important;
}

.material-icons-outlined {
    font-family: 'Material Icons Outlined' !important;
}

.material-icons-round {
    font-family: 'Material Icons Round' !important;
}

.material-icons-sharp {
    font-family: 'Material Icons Sharp' !important;
}

.material-symbols-outlined {
    font-family: 'Material Symbols Outlined' !important;
}

/* 
   Rule 2: Bold Text
   Bold text uses 'Impact' first. 
   - English characters exist in Impact -> Render as Impact.
   - Chinese characters DO NOT exist in Impact -> Fallback to 'Noto Sans TC' (Bold).
*/
h1,
h2,
h3,
h4,
h5,
h6,
strong,
b,
.font-bold,
.font-display,
.font-weight-bold {
    font-family: 'Impact', 'Noto Sans TC', sans-serif !important;
    font-weight: 500;
    /* Ensure the fallback Noto is bold */
}

/* Specific overrides for button-like elements if needed */
button,
.btn,
.button,
input[type="submit"] {
    font-family: 'Noto Sans TC', sans-serif;
}

/* Menu Link Styles to inherit hover colors */
.menu-item a {
    color: inherit;
    /* Allow parent font color to pass through */
    transition: color 0.2s;
}

.menu-item a:hover {
    color: #E87722;
    /* Accent hover color */
}