/* ==========================================================
   NOVTINIS — LOT 111 : HARMONISATION TYPOGRAPHIQUE KHMER
   ----------------------------------------------------------
   Objectif : compenser la taille visuelle plus petite des
   glyphes khmers à valeur CSS identique, sans changer la
   géométrie générale ni les contenus FR / EN.
========================================================== */

html[lang^="km"] body,
html[lang^="km"] button,
html[lang^="km"] input,
html[lang^="km"] select,
html[lang^="km"] textarea,
html[lang^="km"] label,
html[lang^="km"] [data-nt-script="km"],
html[lang^="km"] [lang="km"] {
  font-family: "Noto Sans Khmer", "Khmer OS System", system-ui, sans-serif !important;
  letter-spacing: 0 !important;
  font-variant-ligatures: normal !important;
  text-rendering: optimizeLegibility;
}

html[lang^="km"] body {
  font-size: calc(17px + var(--nt-km-font-boost, 0px)) !important;
  line-height: 1.58 !important;
}

/* Navigation basse : +10 % environ, sans modifier sa hauteur validée. */
@media (max-width: 899px) {
  html[lang^="km"] {
    --nt-client-nav-label-size: clamp(11.5px, 3.25vw, 13px) !important;
  }

  html[lang^="km"] body nav.nt-client-bottom-nav-h145:not(.nt-client-bottom-nav-merchant-h304)
  .nt-client-bottom-nav-label-h145,
  html[lang^="km"] body nav.app-bottom-nav.nt-client-bottom-nav-h145:not(.nt-client-bottom-nav-merchant-h304)
  .nt-client-bottom-nav-label-h145 {
    font-size: calc(var(--nt-client-nav-label-size) + var(--nt-km-font-boost, 0px)) !important;
    line-height: 1.28 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
  }
}

/* ==========================================================
   ACCUEIL
========================================================== */
@media (max-width: 899px) {
  html[lang^="km"] body.home .home-app .home-categories .home-cat span:not(.home-icon),
  html[lang^="km"] body.front-page .home-app .home-categories .home-cat span:not(.home-icon) {
    font-size: calc(14.25px + var(--nt-km-font-boost, 0px)) !important;
    line-height: 1.35 !important;
    letter-spacing: 0 !important;
  }

  html[lang^="km"] body.home .nt-home-distance-section .home-section-head h2,
  html[lang^="km"] body.front-page .nt-home-distance-section .home-section-head h2 {
    font-size: calc(clamp(23px, 5.8vw, 26px) + var(--nt-km-font-boost, 0px)) !important;
    line-height: 1.32 !important;
    letter-spacing: 0 !important;
  }

  html[lang^="km"] body.home .nt-home-distance-section .nt-home-section-link,
  html[lang^="km"] body.front-page .nt-home-distance-section .nt-home-section-link {
    font-size: calc(14px + var(--nt-km-font-boost, 0px)) !important;
    line-height: 1.35 !important;
  }

  html[lang^="km"] body.home .nt-home-distance-section .nt-home-near-card-meta,
  html[lang^="km"] body.front-page .nt-home-distance-section .nt-home-near-card-meta,
  html[lang^="km"] body.home .nt-home-discovery-meta,
  html[lang^="km"] body.front-page .nt-home-discovery-meta {
    font-size: calc(12.5px + var(--nt-km-font-boost, 0px)) !important;
    line-height: 1.48 !important;
    letter-spacing: 0 !important;
  }

  html[lang^="km"] body.home .home-cta-box .nt-home-cta-copy,
  html[lang^="km"] body.front-page .home-cta-box .nt-home-cta-copy,
  html[lang^="km"] body.home .home-cta-btn,
  html[lang^="km"] body.front-page .home-cta-btn {
    font-size: calc(16px + var(--nt-km-font-boost, 0px)) !important;
    line-height: 1.48 !important;
    letter-spacing: 0 !important;
  }

  html[lang^="km"] body.home .app-search-fake-placeholder,
  html[lang^="km"] body.front-page .app-search-fake-placeholder,
  html[lang^="km"] body.home .app-search-static-text,
  html[lang^="km"] body.front-page .app-search-static-text,
  html[lang^="km"] body.home .app-search-rotator-item,
  html[lang^="km"] body.front-page .app-search-rotator-item {
    font-size: calc(15px + var(--nt-km-font-boost, 0px)) !important;
    line-height: 1.45 !important;
  }
}

/* ==========================================================
   RECHERCHER
========================================================== */
@media (max-width: 899px) {
  html[lang^="km"] body.page-template-page-rechercher .search-filter,
  html[lang^="km"] body.page-template-page-rechercher-php .search-filter {
    font-size: calc(13.5px + var(--nt-km-font-boost, 0px)) !important;
    line-height: 1.35 !important;
    padding-top: 5px !important;
    padding-bottom: 5px !important;
  }

  html[lang^="km"] body.page-template-page-rechercher .search-card-details-row,
  html[lang^="km"] body.page-template-page-rechercher-php .search-card-details-row {
    font-size: calc(16px + var(--nt-km-font-boost, 0px)) !important;
    line-height: 1.48 !important;
    letter-spacing: 0 !important;
  }

  html[lang^="km"] body.page-template-page-rechercher .search-card-r\61 ting-row > span:not(.search-stars):not(.search-inline-verified),
  html[lang^="km"] body.page-template-page-rechercher-php .search-card-r\61 ting-row > span:not(.search-stars):not(.search-inline-verified) {
    font-size: calc(16.5px + var(--nt-km-font-boost, 0px)) !important;
    line-height: 1.4 !important;
  }

  html[lang^="km"] body.page-template-page-rechercher .search-more-button,
  html[lang^="km"] body.page-template-page-rechercher-php .search-more-button,
  html[lang^="km"] body.page-template-page-rechercher .search-load-more,
  html[lang^="km"] body.page-template-page-rechercher-php .search-load-more {
    font-size: calc(16px + var(--nt-km-font-boost, 0px)) !important;
    line-height: 1.45 !important;
  }
}

/* ==========================================================
   FICHE COMMERCE
========================================================== */
@media (max-width: 899px) {
  html[lang^="km"] body.single-listing .single-v3-meta-pill,
  html[lang^="km"] body.single-listing .single-v3-tab,
  html[lang^="km"] body.single-listing .single-v3-action,
  html[lang^="km"] body.single-listing .single-v3-info-chip,
  html[lang^="km"] body.single-listing .nt-listing-sticky-action {
    font-size: calc(15px + var(--nt-km-font-boost, 0px)) !important;
    line-height: 1.42 !important;
    letter-spacing: 0 !important;
  }

  html[lang^="km"] body.single-listing .single-v3-panel h2,
  html[lang^="km"] body.single-listing .single-v3-section-title,
  html[lang^="km"] body.single-listing .nt-single-section-title {
    line-height: 1.42 !important;
    letter-spacing: 0 !important;
  }

  html[lang^="km"] body.single-listing .single-v3-panel p,
  html[lang^="km"] body.single-listing .single-v3-description,
  html[lang^="km"] body.single-listing .nt-single-description {
    font-size: calc(17px + var(--nt-km-font-boost, 0px)) !important;
    line-height: 1.66 !important;
  }
}

/* ==========================================================
   MON COMPTE
========================================================== */
@media (max-width: 899px) {
  html[lang^="km"] .seva-account-page .seva-account-kicker,
  html[lang^="km"] .seva-account-page .seva-account-section-label,
  html[lang^="km"] .seva-account-page .nt-account-notification-title {
    font-size: calc(15.5px + var(--nt-km-font-boost, 0px)) !important;
    line-height: 1.45 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
  }

  html[lang^="km"] .seva-account-page .nt-account-personal-intro,
  html[lang^="km"] .seva-account-page .nt-account-side-settings-copy,
  html[lang^="km"] .seva-account-page .seva-account-card > p {
    font-size: calc(17px + var(--nt-km-font-boost, 0px)) !important;
    line-height: 1.68 !important;
    letter-spacing: 0 !important;
  }

  html[lang^="km"] .seva-account-page .seva-account-tab,
  html[lang^="km"] .seva-account-page .seva-settings-row,
  html[lang^="km"] .seva-account-page .nt-identity-edit-pill,
  html[lang^="km"] .seva-account-page .nt-account-notification-toggle {
    font-size: calc(16px + var(--nt-km-font-boost, 0px)) !important;
    line-height: 1.48 !important;
    letter-spacing: 0 !important;
  }

  html[lang^="km"] .seva-account-page .seva-settings-row small,
  html[lang^="km"] .seva-account-page .nt-account-settings-subsection__head {
    font-size: calc(14.5px + var(--nt-km-font-boost, 0px)) !important;
    line-height: 1.52 !important;
    letter-spacing: 0 !important;
  }
}

/* ==========================================================
   AJOUTER UN COMMERCE
========================================================== */
@media (max-width: 899px) {
  html[lang^="km"] .seva-add-commerce-page .seva-add-commerce-heading {
    font-size: calc(clamp(30px, 8vw, 36px) + var(--nt-km-font-boost, 0px)) !important;
    line-height: 1.34 !important;
    letter-spacing: 0 !important;
  }

  html[lang^="km"] .seva-add-commerce-page .nt-add-role-title-h162,
  html[lang^="km"] .seva-add-commerce-page .seva-add-section-title,
  html[lang^="km"] .seva-add-commerce-page .seva-add-field > label,
  html[lang^="km"] .seva-add-commerce-page .seva-add-field-label {
    font-size: calc(17px + var(--nt-km-font-boost, 0px)) !important;
    line-height: 1.52 !important;
    letter-spacing: 0 !important;
  }

  html[lang^="km"] .seva-add-commerce-page .nt-add-role-option-h162 strong,
  html[lang^="km"] .seva-add-commerce-page .nt-add-role-option-h162 b {
    font-size: calc(17px + var(--nt-km-font-boost, 0px)) !important;
    line-height: 1.45 !important;
  }

  html[lang^="km"] .seva-add-commerce-page .nt-add-role-option-h162 small,
  html[lang^="km"] .seva-add-commerce-page .nt-add-role-option-h162 p,
  html[lang^="km"] .seva-add-commerce-page .seva-add-section-title p,
  html[lang^="km"] .seva-add-commerce-page .seva-add-field > small,
  html[lang^="km"] .seva-add-commerce-page .seva-add-help,
  html[lang^="km"] .seva-add-commerce-page .seva-add-user-note {
    font-size: calc(15.5px + var(--nt-km-font-boost, 0px)) !important;
    line-height: 1.62 !important;
    letter-spacing: 0 !important;
  }

  html[lang^="km"] .seva-add-commerce-page input,
  html[lang^="km"] .seva-add-commerce-page select,
  html[lang^="km"] .seva-add-commerce-page textarea,
  html[lang^="km"] .seva-add-commerce-page button,
  html[lang^="km"] .seva-add-commerce-page .seva-add-progress button,
  html[lang^="km"] .seva-add-commerce-page .seva-add-tab {
    font-size: calc(16px + var(--nt-km-font-boost, 0px)) !important;
    line-height: 1.5 !important;
    letter-spacing: 0 !important;
  }

  html[lang^="km"] .seva-add-commerce-page input::placeholder,
  html[lang^="km"] .seva-add-commerce-page textarea::placeholder {
    font-size: calc(15.5px + var(--nt-km-font-boost, 0px)) !important;
    line-height: 1.55 !important;
  }

  html[lang^="km"] .seva-add-commerce-page .seva-add-submit {
    font-size: calc(18px + var(--nt-km-font-boost, 0px)) !important;
    line-height: 1.45 !important;
  }
}

/* ==========================================================
   TABLEAU DE BORD NOVTINISEUR
========================================================== */
@media (max-width: 899px) {
  html[lang^="km"] .nt-novtiniseur-dashboard-page .nt-ambassador-kicker,
  html[lang^="km"] .nt-novtiniseur-dashboard-page .nt-novtiniseur-internal-code,
  html[lang^="km"] .nt-novtiniseur-dashboard-page .nt-novtiniseur-direct-rate,
  html[lang^="km"] .nt-novtiniseur-dashboard-page .nt-novtiniseur-grade-note {
    font-size: calc(14.5px + var(--nt-km-font-boost, 0px)) !important;
    line-height: 1.52 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
  }

  html[lang^="km"] .nt-novtiniseur-dashboard-page .nt-ambassador-profile-copy p,
  html[lang^="km"] .nt-novtiniseur-dashboard-page .nt-novtiniseur-ca-explain,
  html[lang^="km"] .nt-novtiniseur-dashboard-page .nt-novtiniseur-section-head p {
    font-size: calc(16px + var(--nt-km-font-boost, 0px)) !important;
    line-height: 1.62 !important;
    letter-spacing: 0 !important;
  }

  html[lang^="km"] .nt-novtiniseur-dashboard-page .nt-novtiniseur-view-tabs button {
    font-size: calc(15px + var(--nt-km-font-boost, 0px)) !important;
    line-height: 1.42 !important;
    letter-spacing: 0 !important;
  }

  html[lang^="km"] .nt-novtiniseur-dashboard-page .nt-novtiniseur-periods a {
    font-size: calc(12.5px + var(--nt-km-font-boost, 0px)) !important;
    line-height: 1.4 !important;
    letter-spacing: 0 !important;
  }

  html[lang^="km"] .nt-novtiniseur-dashboard-page .nt-novtiniseur-kpis > div span,
  html[lang^="km"] .nt-novtiniseur-dashboard-page .nt-novtiniseur-kpis-premium > div span {
    font-size: calc(11.5px + var(--nt-km-font-boost, 0px)) !important;
    line-height: 1.5 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  html[lang^="km"] .nt-novtiniseur-dashboard-page .nt-novtiniseur-kpis > div,
  html[lang^="km"] .nt-novtiniseur-dashboard-page .nt-novtiniseur-kpis-premium > div {
    align-content: flex-start !important;
  }
}

/* Évite les coupures verticales des diacritiques dans les éléments compacts. */
html[lang^="km"] .nt-client-bottom-nav-label-h145,
html[lang^="km"] .home-cat span,
html[lang^="km"] .search-filter,
html[lang^="km"] .seva-account-tab,
html[lang^="km"] .seva-add-progress button,
html[lang^="km"] .nt-novtiniseur-view-tabs button,
html[lang^="km"] .nt-novtiniseur-periods a {
  overflow: visible !important;
  text-overflow: clip !important;
}

/* ==========================================================
   LOT 157 — « Nouveaux sur Novtinis » : contexte khmer sur 2 lignes
   ----------------------------------------------------------
   Complément typographique au correctif général : la ligne catégorie · ville
   reste strictement contenue dans la carte et dispose de la hauteur nécessaire
   aux glyphes khmers sur deux lignes maximum.
========================================================== */
@media (max-width: 899px) {
  html[lang^="km"] body.home .home-grid-new .nt-home-discovery-new-context,
  html[lang^="km"] body.front-page .home-grid-new .nt-home-discovery-new-context {
    display: -webkit-box !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 3.10em !important;
    max-height: 3.10em !important;
    margin: 0 !important;
    padding: 0 0 2px !important;
    box-sizing: border-box !important;
    font-family: "Noto Sans Khmer", "Khmer OS System", system-ui, sans-serif !important;
    font-size: calc(13.5px + var(--nt-km-font-boost, 0px)) !important;
    line-height: 1.55 !important;
    letter-spacing: 0 !important;
    white-space: normal !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
  }

  html[lang^="km"] body.home .home-grid-new .nt-home-discovery-body h3[lang="km"],
  html[lang^="km"] body.home .home-grid-new .nt-home-discovery-body h3[data-nt-script="km"],
  html[lang^="km"] body.front-page .home-grid-new .nt-home-discovery-body h3[lang="km"],
  html[lang^="km"] body.front-page .home-grid-new .nt-home-discovery-body h3[data-nt-script="km"] {
    min-height: 1.48em !important;
    max-height: 1.48em !important;
    padding-top: 1px !important;
    padding-bottom: 2px !important;
    box-sizing: content-box !important;
    line-height: 1.42 !important;
    letter-spacing: 0 !important;
  }
}
