/* WLSM Elementor/Astra icon isolation fix.
 *
 * Keep the school-management Font Awesome icons stable even when Elementor is active.
 * Elementor/Astra may register their own icon font CSS with generic handles or different
 * loading order. These rules are intentionally scoped to WLSM frontend containers only.
 */

.wlsm-container i.fa,
.wlsm-container i.fas,
.wlsm-container i.far,
.wlsm-container i.fab,
.wlsm-container .fa,
.wlsm-container .fas,
.wlsm-container .far,
.wlsm-container .fab,
.wlsm-content-area i.fa,
.wlsm-content-area i.fas,
.wlsm-content-area i.far,
.wlsm-content-area i.fab,
.wlsm-navigation-header i.fa,
.wlsm-navigation-header i.fas,
.wlsm-navigation-header i.far,
.wlsm-navigation-header i.fab,
.wlsm-account-topbar i.fa,
.wlsm-account-topbar i.fas,
.wlsm-account-topbar i.far,
.wlsm-account-topbar i.fab {
  font-family: "Font Awesome 5 Free" !important;
  font-style: normal !important;
  font-variant: normal !important;
  text-rendering: auto !important;
  line-height: 1 !important;
  opacity: 1 !important;
  visibility: visible !important;
  display: inline-block !important;
  -webkit-font-smoothing: antialiased !important;
  -moz-osx-font-smoothing: grayscale !important;
}

.wlsm-container .fa,
.wlsm-container .fas,
.wlsm-content-area .fa,
.wlsm-content-area .fas,
.wlsm-navigation-header .fa,
.wlsm-navigation-header .fas,
.wlsm-account-topbar .fa,
.wlsm-account-topbar .fas {
  font-weight: 900 !important;
}

.wlsm-container .far,
.wlsm-content-area .far,
.wlsm-navigation-header .far,
.wlsm-account-topbar .far {
  font-family: "Font Awesome 5 Free" !important;
  font-weight: 400 !important;
}

.wlsm-container .fab,
.wlsm-content-area .fab,
.wlsm-navigation-header .fab,
.wlsm-account-topbar .fab {
  font-family: "Font Awesome 5 Brands" !important;
  font-weight: 400 !important;
}

.wlsm-container .fa:before,
.wlsm-container .fas:before,
.wlsm-container .far:before,
.wlsm-container .fab:before,
.wlsm-content-area .fa:before,
.wlsm-content-area .fas:before,
.wlsm-content-area .far:before,
.wlsm-content-area .fab:before,
.wlsm-navigation-header .fa:before,
.wlsm-navigation-header .fas:before,
.wlsm-navigation-header .far:before,
.wlsm-navigation-header .fab:before,
.wlsm-account-topbar .fa:before,
.wlsm-account-topbar .fas:before,
.wlsm-account-topbar .far:before,
.wlsm-account-topbar .fab:before {
  font-family: inherit !important;
  font-weight: inherit !important;
}

/* Icons injected by WLSM CSS with content:"\\f...". */
.wlsm-container [class*="wlsm-"]:before,
.wlsm-content-area [class*="wlsm-"]:before,
.wlsm-study-material-attachments a:before,
.wlsm-study-material-data a.wlsm-st-track-asset:before {
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
}

/* WLSM icon-box alignment fix.
 * The generic icon isolation above uses inline-block to stabilize Font Awesome.
 * The rules below restore flex centering for icons that are intentionally styled
 * as square/rounded visual containers in the student/parent dashboard.
 */
.wlsm-container .wlsm-navigation-links li a i.fa,
.wlsm-container .wlsm-navigation-links li a i.fas,
.wlsm-container .wlsm-navigation-links li a i.far,
.wlsm-container .wlsm-navigation-links li a i.fab,
.wlsm-navigation-header h3 i.fa,
.wlsm-navigation-header h3 i.fas,
.wlsm-navigation-header h3 i.far,
.wlsm-navigation-header h3 i.fab,
.wlsm-account-topbar .wlsm-header-logout i.fa,
.wlsm-account-topbar .wlsm-header-logout i.fas,
.wlsm-account-topbar .wlsm-header-logout i.far,
.wlsm-account-topbar .wlsm-header-logout i.fab,
.wlsm-container .wlsm-stats-icon i.fa,
.wlsm-container .wlsm-stats-icon i.fas,
.wlsm-container .wlsm-stats-icon i.far,
.wlsm-container .wlsm-stats-icon i.fab,
.wlsm-container .wlsm-smart-hero-icon i.fa,
.wlsm-container .wlsm-smart-hero-icon i.fas,
.wlsm-container .wlsm-smart-hero-icon i.far,
.wlsm-container .wlsm-smart-hero-icon i.fab {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  line-height: 1 !important;
  vertical-align: middle !important;
}

.wlsm-container .wlsm-navigation-links li a i.fa:before,
.wlsm-container .wlsm-navigation-links li a i.fas:before,
.wlsm-container .wlsm-navigation-links li a i.far:before,
.wlsm-container .wlsm-navigation-links li a i.fab:before,
.wlsm-navigation-header h3 i.fa:before,
.wlsm-navigation-header h3 i.fas:before,
.wlsm-navigation-header h3 i.far:before,
.wlsm-navigation-header h3 i.fab:before,
.wlsm-container .wlsm-stats-icon i.fa:before,
.wlsm-container .wlsm-stats-icon i.fas:before,
.wlsm-container .wlsm-stats-icon i.far:before,
.wlsm-container .wlsm-stats-icon i.fab:before,
.wlsm-container .wlsm-smart-hero-icon i.fa:before,
.wlsm-container .wlsm-smart-hero-icon i.fas:before,
.wlsm-container .wlsm-smart-hero-icon i.far:before,
.wlsm-container .wlsm-smart-hero-icon i.fab:before {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1 !important;
  width: auto !important;
  height: auto !important;
  position: static !important;
  transform: none !important;
}

/* Keep the dashboard side-menu icon boxes perfectly centered in LTR and RTL. */
.wlsm-container .wlsm-navigation-links li a i {
  place-items: center !important;
  box-sizing: border-box !important;
}

/* WLSM lesson/smart viewer close button centering.
 * The fullscreen viewer close button is outside the normal WLSM container, so it
 * needs its own scoped alignment rule. This keeps the X/minus exactly centered
 * without relying on browser default button padding/line-height.
 */
.wlsm-lesson-viewer-close,
.wlsm-smart-viewer .wlsm-smart-preview-close {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  padding: 0 !important;
  line-height: 1 !important;
  box-sizing: border-box !important;
  vertical-align: middle !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}

.wlsm-lesson-viewer-close {
  font-family: Arial, Helvetica, sans-serif !important;
  font-weight: 400 !important;
}

.wlsm-lesson-viewer-close::before,
.wlsm-smart-viewer .wlsm-smart-preview-close::before {
  display: none !important;
  content: none !important;
}
