/*
 * VLS Khmer typography system (v1.2 – +10% font sizes)
 * Google Fonts: Nokora Regular 400 and Bold 700.
 * Loaded after styles.css. This layer does not affect Vietnamese/English views.
 * Khmer text remains live Unicode, not rasterized lettering.
 */

body[lang="km"] {
  font-family: 'Nokora', 'Noto Sans Khmer', sans-serif;
  font-size: 17.6px;
  font-weight: 400;
  line-height: 1.85;
  text-rendering: optimizeLegibility;
}

body[lang="km"] :is(h1, h2, h3, h4) {
  font-family: 'Nokora', 'Noto Sans Khmer', sans-serif;
  font-weight: 700;
  letter-spacing: normal;
  word-break: normal;
  overflow-wrap: break-word;
}

/* Khmer does not use Latin-style tight tracking on display typography. */
body[lang="km"] :is(.eyebrow, .section-kicker, .form-badge, .course-label) {
  letter-spacing: normal;
}

/* Brand-level headings: large, confidently bold, with safe space for vowels/marks. */
body[lang="km"] .hero h1 {
  font-size: clamp(40.7px, 3.96vw, 59.4px);
  font-weight: 700;
  line-height: 1.57;
  letter-spacing: normal;
  margin-block: 20px 24px;
}
body[lang="km"] .hero h1 em { margin-top: 4px; }
body[lang="km"] .section-title {
  font-size: clamp(36.3px, 3.465vw, 52.8px);
  font-weight: 700;
  line-height: 1.64;
  letter-spacing: normal;
}
body[lang="km"] .form-card-head h3 {
  font-size: clamp(26.4px, 2.53vw, 31.9px);
  font-weight: 700;
  line-height: 1.62;
}

/* Navigation, labels and calls to action. */
body[lang="km"] .nav a {
  font-size: 15.4px;
  font-weight: 700;
  line-height: 1.75;
}
body[lang="km"] .header-cta {
  font-size: 13.75px;
  font-weight: 700;
  line-height: 1.65;
}
body[lang="km"] :is(.hero-eyebrow, .section-kicker) {
  font-size: 14.3px;
  font-weight: 700;
  line-height: 1.75;
}
body[lang="km"] .btn {
  font-size: 15.4px;
  font-weight: 700;
  line-height: 1.7;
}
body[lang="km"] .hero-micro,
body[lang="km"] .text-link,
body[lang="km"] .course-link {
  font-size: 14.3px;
  font-weight: 700;
  line-height: 1.8;
}

/* Regular text: deliberate, moderate sizing distinct from headings. */
body[lang="km"] .hero-lead {
  font-size: 17.6px;
  font-weight: 400;
  line-height: 2;
}
body[lang="km"] :is(.body-copy, .method-main > p, .contact-copy > p) {
  font-size: 17.05px;
  font-weight: 400;
  line-height: 2.05;
}
body[lang="km"] .programs-intro p,
body[lang="km"] .poster-copy > p,
body[lang="km"] .faq-grid > div > p {
  font-size: 16.5px;
  line-height: 2;
}
body[lang="km"] .program-disclaimer { font-size: 13.2px; line-height: 1.8; }

body[lang="km"] .benefit-item strong {
  font-size: 16.5px;
  font-weight: 700;
  line-height: 1.85;
}
body[lang="km"] .benefit-item small {
  font-family: 'Nokora', 'Noto Sans Khmer', sans-serif;
  font-size: 13.2px;
  font-weight: 400;
  line-height: 1.75;
}
body[lang="km"] .about-gold-card strong {
  font-size: 18.7px;
  font-weight: 700;
  line-height: 1.8;
}
body[lang="km"] .about-values strong {
  font-size: 14.3px;
  font-weight: 700;
  line-height: 1.75;
}

/* Program cards. */
body[lang="km"] .course-label {
  font-size: 13.2px;
  font-weight: 700;
  line-height: 1.8;
}
body[lang="km"] .course-card h3 {
  font-size: 20.9px;
  font-weight: 700;
  line-height: 1.8;
}
body[lang="km"] .course-card p {
  font-size: 14.85px;
  font-weight: 400;
  line-height: 2;
}
body[lang="km"] .method-step h3 {
  font-size: 19.8px;
  font-weight: 700;
  line-height: 1.75;
}
body[lang="km"] .method-step p {
  font-size: 15.4px;
  font-weight: 400;
  line-height: 1.95;
}

/* FAQ and consultation: prioritize readability and clear labels. */
body[lang="km"] .faq-list summary {
  font-size: 17.6px;
  font-weight: 700;
  line-height: 1.8;
}
body[lang="km"] .faq-list details p {
  font-size: 15.4px;
  font-weight: 400;
  line-height: 2;
}
body[lang="km"] .form-card-head p,
body[lang="km"] .form-card label {
  font-size: 14.3px;
  line-height: 1.85;
}
body[lang="km"] .form-card label { font-weight: 700; }
body[lang="km"] .form-card :is(input:not([type="checkbox"]), select, textarea) {
  font-family: 'Nokora', 'Noto Sans Khmer', sans-serif;
  font-size: 15.4px;
  font-weight: 400;
  line-height: 1.7;
}
body[lang="km"] .form-card .check-label {
  font-size: 13.2px;
  font-weight: 400;
  line-height: 1.85;
}
body[lang="km"] .form-message { font-size: 14.3px; line-height: 1.85; }
body[lang="km"] .contact-detail small {
  font-family: 'Nokora', 'Noto Sans Khmer', sans-serif;
  letter-spacing: normal;
  font-size: 13.2px;
}
body[lang="km"] .footer-description p {
  font-size: 14.85px;
  font-weight: 400;
  line-height: 2;
}
body[lang="km"] .footer-links a {
  font-size: 14.3px;
  font-weight: 700;
  line-height: 1.75;
}

@media (max-width: 1250px) {
  body[lang="km"] .nav a { font-size: 14.3px; }
}
@media (max-width: 980px) {
  body[lang="km"] .hero h1 { font-size: clamp(38.5px, 4.62vw, 50.6px); }
  body[lang="km"] .nav a { font-size: 16.5px; }
}
@media (max-width: 700px) {
  body[lang="km"] .hero h1 {
    font-size: clamp(35.2px, 8.14vw, 48.4px);
    line-height: 1.6;
  }
  body[lang="km"] .section-title {
    font-size: clamp(33px, 7.48vw, 44px);
    line-height: 1.63;
  }
  body[lang="km"] .hero-lead { font-size: 16.5px; line-height: 1.95; }
  body[lang="km"] .benefit-item strong { font-size: 14.3px; line-height: 1.8; }
  body[lang="km"] .benefit-item small { font-size: 12.1px; line-height: 1.65; }
  body[lang="km"] .about-values strong { font-size: 13.2px; }
  body[lang="km"] .course-card h3 { font-size: 18.7px; }
  body[lang="km"] .course-card p { font-size: 14.3px; }
  body[lang="km"] .course-link { font-size: 13.2px; }
  body[lang="km"] .form-card :is(input:not([type="checkbox"]), select, textarea) {
    font-size: 17.6px; /* avoid automatic zoom on iOS inputs */
  }
}
@media (max-width: 420px) {
  body[lang="km"] .hero h1 { font-size: 35.2px; }
  body[lang="km"] .section-title { font-size: 33px; }
  body[lang="km"] .course-card h3 { font-size: 19.8px; }
  body[lang="km"] .benefit-item strong { font-size: 13.2px; }
  body[lang="km"] .benefit-item small { font-size: 11.55px; }
}
