/* ============================================
   GOOGLE FONTS - Load Montserrat font family
   ============================================ */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&display=swap');

/* ============================================
   STICKY FOOTER - Targets the specific page
   Elementor container (ID 3787) to stretch
   content above footer on short pages
   ============================================ */
.elementor[data-elementor-id="3787"] {
    min-height: calc(100vh - 370px) !important;
}

/* ============================================
   ENGLISH PAGES - Montserrat typography
   ============================================ */
html[lang="en"][lang="en"][lang="en"] body,
html[lang="en"][lang="en"][lang="en"] p,
html[lang="en"][lang="en"][lang="en"] li,
html[lang="en"][lang="en"][lang="en"] span,
html[lang="en"][lang="en"][lang="en"] div,
html[lang="en"][lang="en"][lang="en"] h1,
html[lang="en"][lang="en"][lang="en"] h2,
html[lang="en"][lang="en"][lang="en"] h3,
html[lang="en"][lang="en"][lang="en"] h4,
html[lang="en"][lang="en"][lang="en"] h5,
html[lang="en"][lang="en"][lang="en"] h6,
html[lang="en"][lang="en"][lang="en"] .elementor-widget-container,
html[lang="en"][lang="en"][lang="en"] .elementor-heading-title,
html[lang="en"][lang="en"][lang="en"] strong,
html[lang="en"][lang="en"][lang="en"] b,
html[lang="en"][lang="en"][lang="en"] a {
    font-family: 'Montserrat', sans-serif !important;
    line-height: 1.5 !important;
}

/* Extra-large headings - tighter line height */
html[lang="en"][lang="en"][lang="en"] h1,
html[lang="en"][lang="en"][lang="en"] .elementor-heading-title.elementor-size-xxl,
html[lang="en"][lang="en"][lang="en"] .elementor-heading-title.elementor-size-xl {
    font-weight: 800 !important;
    line-height: 1.1 !important;
}

/* Standard headings */
html[lang="en"][lang="en"][lang="en"] h2,
html[lang="en"][lang="en"][lang="en"] h3,
html[lang="en"][lang="en"][lang="en"] .elementor-heading-title {
    font-weight: 700 !important;
    line-height: 1.1 !important;
}

/* Navigation menu links */
html[lang="en"][lang="en"][lang="en"] .main-navigation a,
html[lang="en"][lang="en"][lang="en"] .nav-menu a,
html[lang="en"][lang="en"][lang="en"] #site-navigation a {
    font-weight: 600 !important;
}

/* ============================================
   KHMER PAGES - Noto Sans Khmer (self-hosted)
   ============================================ */
@font-face {
  font-family: 'Noto Sans Khmer';
  src: url('/wp-content/uploads/fonts/noto-sans-khmer-v29-khmer-regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Noto Sans Khmer';
  src: url('/wp-content/uploads/fonts/noto-sans-khmer-v29-khmer-700.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Noto Sans Khmer';
  src: url('/wp-content/uploads/fonts/noto-sans-khmer-v29-khmer-900.woff2') format('woff2');
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}

/* Apply Khmer font to text elements on Khmer pages
   (excludes icons, images, svg to avoid breaking icon fonts/layout) */
html[lang="km"][lang="km"][lang="km"] body,
html[lang="km"][lang="km"][lang="km"] p,
html[lang="km"][lang="km"][lang="km"] li,
html[lang="km"][lang="km"][lang="km"] span:not(.elementor-icon-list-icon),
html[lang="km"][lang="km"][lang="km"] .elementor-icon-list-text,
html[lang="km"][lang="km"][lang="km"] div:not(.elementor-icon-list-icon),
html[lang="km"][lang="km"][lang="km"] a,
html[lang="km"][lang="km"][lang="km"] h1,
html[lang="km"][lang="km"][lang="km"] h2,
html[lang="km"][lang="km"][lang="km"] h3,
html[lang="km"][lang="km"][lang="km"] h4,
html[lang="km"][lang="km"][lang="km"] h5,
html[lang="km"][lang="km"][lang="km"] h6,
html[lang="km"][lang="km"][lang="km"] .elementor-widget-container,
html[lang="km"][lang="km"][lang="km"] .elementor-heading-title {
    font-family: 'Noto Sans Khmer', 'Khmer OS', sans-serif !important;
}

/* Khmer text line-height, scoped to text only, not images/icons/containers */
html[lang="km"][lang="km"][lang="km"] p,
html[lang="km"][lang="km"][lang="km"] li,
html[lang="km"][lang="km"][lang="km"] .elementor-heading-title {
    line-height: 1.6 !important;
}

/* Force real bold weight on Khmer headings and bold elements */
html[lang="km"][lang="km"][lang="km"] h1,
html[lang="km"][lang="km"][lang="km"] .elementor-heading-title.elementor-size-xxl,
html[lang="km"][lang="km"][lang="km"] .elementor-heading-title.elementor-size-xl {
    font-weight: 900 !important;
    line-height: 1.3 !important;
}

html[lang="km"][lang="km"][lang="km"] h2,
html[lang="km"][lang="km"][lang="km"] h3,
html[lang="km"][lang="km"][lang="km"] h4,
html[lang="km"][lang="km"][lang="km"] h5,
html[lang="km"][lang="km"][lang="km"] h6,
html[lang="km"][lang="km"][lang="km"] strong,
html[lang="km"][lang="km"][lang="km"] b,
html[lang="km"][lang="km"][lang="km"] .elementor-heading-title {
    font-weight: 700 !important;
    line-height: 1.3 !important;
}

/* Navigation menu links */
html[lang="km"][lang="km"][lang="km"] .main-navigation a,
html[lang="km"][lang="km"][lang="km"] .nav-menu a,
html[lang="km"][lang="km"][lang="km"] #site-navigation a {
    font-weight: 600 !important;
}

/* ============================================
   PARAGRAPH/LIST TEXT COLOR - lighter gray, both languages
   ============================================ */
html[lang="en"][lang="en"][lang="en"] p,
html[lang="km"][lang="km"][lang="km"] p,
html[lang="en"][lang="en"][lang="en"] li,
html[lang="km"][lang="km"][lang="km"] li,
html[lang="en"][lang="en"][lang="en"] ul,
html[lang="km"][lang="km"][lang="km"] ul,
html[lang="en"][lang="en"][lang="en"] .elementor-icon-list-text,
html[lang="km"][lang="km"][lang="km"] .elementor-icon-list-text {
    color: #647589 !important;
}

/* ============================================
   ABOUT PAGE - Checklist icon sizing + alignment fix
   ============================================ */
.about-text-list .elementor-icon-list-icon,
.about-text-list .elementor-icon-list-icon i,
.about-text-list .elementor-icon-list-icon svg,
.about-text-list .fa-check,
.about-text-list [class*="fa-"],
.about-text-list [class*="eicon-"] {
    font-size: 14px !important;
    width: 24px !important;
    height: 24px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.about-text-list li,
.about-text-list .elementor-icon-list-item {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
}