/* Robust Multi-Weight Moul Font Definition */
@font-face {
  font-family: 'Moul';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/moul/v30/nuF2D__FSo_3I-hSiaCy.woff2) format('woff2');
  unicode-range: U+1780-17FF, U+19E0-19FF, U+200C-200D, U+25CC;
}
@font-face {
  font-family: 'Moul';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/moul/v30/nuF2D__FSo_3I-hSiaCy.woff2) format('woff2');
  unicode-range: U+1780-17FF, U+19E0-19FF, U+200C-200D, U+25CC;
}
@font-face {
  font-family: 'Moul';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/moul/v30/nuF2D__FSo_3I-hSiaCy.woff2) format('woff2');
  unicode-range: U+1780-17FF, U+19E0-19FF, U+200C-200D, U+25CC;
}
@font-face {
  font-family: 'Moul';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/moul/v30/nuF2D__FSo_3I-hSiaCy.woff2) format('woff2');
  unicode-range: U+1780-17FF, U+19E0-19FF, U+200C-200D, U+25CC;
}
@import url('https://fonts.googleapis.com/css2?family=Moul&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+Khmer:wght@400;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Kantumruy+Pro:wght@400;500;600;700&family=Manrope:wght@600;700;800&display=swap');
@import url('local-icons.css');

/* Instant 0ms Native Bilingual Content Switcher */
html[lang="en"] .lang-km { display: none !important; }
html[lang="km"] .lang-en { display: none !important; }
html[lang="en"] span.lang-en,
html[lang="en"] a.lang-en { display: inline; }
html[lang="km"] span.lang-km,
html[lang="km"] a.lang-km { display: inline; }
html[lang="en"] div.lang-en,
html[lang="en"] p.lang-en { display: block; }
html[lang="km"] div.lang-km,
html[lang="km"] p.lang-km { display: block; }

/* Shared readable typography for the public LDCFC pages. */
:root {
  --ldcfc-font-en: Inter, Arial, sans-serif;
  --ldcfc-font-display-en: Manrope, Inter, Arial, sans-serif;
  --ldcfc-font-km: "Kantumruy Pro", "Noto Sans Khmer", sans-serif;
  --ldcfc-font-display-km: 'Moul', "Noto Serif Khmer", serif;
}

/* Absolute Icon Isolation: Icon ligatures must never inherit the active English or Khmer text font. */
:is(.material-symbols-outlined, .material-symbols-rounded, .material-symbols-sharp, .material-icons, [class*="material-symbols"]) {
  font-family: "Material Symbols Outlined" !important;
  font-weight: normal !important;
  font-style: normal !important;
  font-feature-settings: "liga" 1 !important;
  font-variant-ligatures: discretionary-ligatures !important;
  direction: ltr !important;
  letter-spacing: normal !important;
  line-height: 1 !important;
  text-transform: none !important;
  display: inline-block !important;
  white-space: nowrap !important;
  word-wrap: normal !important;
  -webkit-font-smoothing: antialiased !important;
}

html[lang="en"] body {
  font-family: var(--ldcfc-font-en) !important;
  font-size: 16px;
  line-height: 1.65;
}

html[lang="en"] :is(h1, h2, h3, h4, h5, h6) {
  font-family: var(--ldcfc-font-display-en) !important;
  line-height: 1.2;
  text-wrap: balance;
}

html[lang="km"] body,
html[lang="km"] :is(input, select, textarea, button) {
  font-family: var(--ldcfc-font-km) !important;
  font-size: 17px;
  line-height: 1.78;
}

.lang-km:not(.font-khmer-moul):not(.khmer-moul-title):not(.hero-khmer-heading),
:lang(km):not(.font-khmer-moul):not(.khmer-moul-title):not(.hero-khmer-heading):not(.material-symbols-outlined):not(.material-symbols-rounded):not(.material-symbols-sharp):not(.material-icons) {
  font-family: var(--ldcfc-font-km) !important;
  line-height: 1.75;
}

.font-khmer-moul,
.font-khmer-moul *,
.khmer-moul-title,
.khmer-moul-title *,
.hero-khmer-heading,
.hero-khmer-heading *,
.ldcfc-brand-text .font-khmer-moul,
.ldcfc-brand-text .lang-km,
html[lang="km"] :is(h1, h2, h3, .khmer-title, .khmer-display, .font-khmer-moul, .hero-khmer-heading),
html[lang="km"] :is(h1, h2, h3, .khmer-title, .khmer-display, .font-khmer-moul, .hero-khmer-heading) *,
:is(h1, h2, h3) > .lang-km,
:is(h1, h2, h3) > .lang-km *,
.lang-km:is(.khmer-title, .khmer-display, .font-khmer-moul, .hero-khmer-heading),
.lang-km:is(.khmer-title, .khmer-display, .font-khmer-moul, .hero-khmer-heading) * {
  font-family: 'Moul', "Noto Serif Khmer", serif !important;
  font-weight: 400 !important;
  line-height: 1.6 !important;
  letter-spacing: 0 !important;
  text-wrap: balance;
}

main :is(p, li) {
  line-height: 1.7;
}

/* Raise generated 10–12px labels to a readable size without changing icons. */
main :is(.text-xs, [class~="text-[10px]"], [class~="text-[11px]"], [class~="text-[12px]"]),
main :is(.eyebrow, .section-kicker, .section-label, .overline),
main small {
  font-size: 13px !important;
  line-height: 1.45 !important;
}

html[lang="km"] main :is(.text-xs, [class~="text-[10px]"], [class~="text-[11px]"], [class~="text-[12px]"]),
html[lang="km"] main :is(.eyebrow, .section-kicker, .section-label, .overline),
html[lang="km"] main small,
main .lang-km:is(.text-xs, .eyebrow, .section-kicker, .section-label, .overline) {
  font-size: 14px !important;
  line-height: 1.7 !important;
}

main :is(button, .btn, [role="button"]) {
  font-size: max(13px, .8125rem);
}

@media (max-width: 767px) {
  html[lang="en"] body {
    font-size: 16px;
  }

  html[lang="km"] body {
    font-size: 16.5px;
  }

  main :is(p, li) {
    line-height: 1.72;
  }
}

/*
 * Keep this after every Khmer typography selector. `:lang(km)` also matches
 * descendants, so without this final higher-specificity rule icon ligature
 * text such as `search` and `check_circle` inherits Kantumruy Pro.
 */
html[lang="km"] :is(.material-symbols-outlined, .material-symbols-rounded, .material-symbols-sharp, .material-icons, [class*="material-symbols"]),
html[lang="en"] :is(.material-symbols-outlined, .material-symbols-rounded, .material-symbols-sharp, .material-icons, [class*="material-symbols"]),
:is(.material-symbols-outlined, .material-symbols-rounded, .material-symbols-sharp, .material-icons, [class*="material-symbols"]) {
  font-family: "Material Symbols Outlined" !important;
  font-feature-settings: "liga" 1 !important;
  font-variant-ligatures: discretionary-ligatures !important;
  font-style: normal !important;
  font-weight: normal !important;
  direction: ltr !important;
  letter-spacing: normal !important;
  line-height: 1 !important;
  text-rendering: optimizeLegibility;
  text-transform: none !important;
  white-space: nowrap !important;
  word-break: normal !important;
  word-wrap: normal !important;
}
