/*
Theme Name: PPBS Official Theme
Version: 1.4.1
*/

/* =============================================================
   LOCAL FONTS: Rajdhani & Content (Khmer)
   ============================================================= */
@font-face {
  font-family: 'Rajdhani';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/wp-content/themes/ppbs-theme/assets/fonts/rajdhani-500.woff2') format('woff2');
}

@font-face {
  font-family: 'Rajdhani';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/wp-content/themes/ppbs-theme/assets/fonts/rajdhani-600.woff2') format('woff2');
}

@font-face {
  font-family: 'Rajdhani';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/wp-content/themes/ppbs-theme/assets/fonts/rajdhani-700.woff2') format('woff2');
}

@font-face {
  font-family: 'Content';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: local('Khmer OS Content'), local('Content'),
    url('/wp-content/themes/ppbs-theme/assets/fonts/content-400.woff2') format('woff2'),
    url('/wp-content/themes/ppbs-theme/assets/fonts/content-400.ttf') format('truetype');
}

@font-face {
  font-family: 'Content';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: local('Khmer OS Content Bold'), local('Khmer OS Content'), local('Content Bold'), local('Content'),
    url('/wp-content/themes/ppbs-theme/assets/fonts/content-700.woff2') format('woff2'),
    url('/wp-content/themes/ppbs-theme/assets/fonts/content-700.ttf') format('truetype');
}

@font-face {
  font-family: 'Khmer OS Content';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: local('Khmer OS Content'), local('Content'),
    url('/wp-content/themes/ppbs-theme/assets/fonts/content-400.woff2') format('woff2'),
    url('/wp-content/themes/ppbs-theme/assets/fonts/khmer-os-content-400.ttf') format('truetype'),
    url('/wp-content/themes/ppbs-theme/assets/fonts/content-400.ttf') format('truetype');
}

@font-face {
  font-family: 'Khmer OS Content';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: local('Khmer OS Content Bold'), local('Khmer OS Content'), local('Content Bold'), local('Content'),
    url('/wp-content/themes/ppbs-theme/assets/fonts/content-700.woff2') format('woff2'),
    url('/wp-content/themes/ppbs-theme/assets/fonts/khmer-os-content-700.ttf') format('truetype'),
    url('/wp-content/themes/ppbs-theme/assets/fonts/content-700.ttf') format('truetype');
}

@font-face {
  font-family: 'Moul';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: local('Khmer OS Muol Light'), local('Khmer OS Muol'), local('Moul'),
    url('/wp-content/themes/ppbs-theme/assets/fonts/moul.woff2') format('woff2'),
    url('/wp-content/themes/ppbs-theme/assets/fonts/moul.ttf') format('truetype');
}

@font-face {
  font-family: 'Times New Roman';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: local('Times New Roman'), local('TimesNewRomanPSMT'),
    url('/wp-content/themes/ppbs-theme/assets/fonts/times-400.woff2') format('woff2');
}

@font-face {
  font-family: 'Times New Roman';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: local('Times New Roman Bold'), local('TimesNewRomanPS-BoldMT'),
    url('/wp-content/themes/ppbs-theme/assets/fonts/times-700.woff2') format('woff2');
}

@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: local('Roboto'), local('Roboto-Regular'),
    url('/wp-content/themes/ppbs-theme/assets/fonts/roboto-400.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: local('Roboto Medium'), local('Roboto-Medium'),
    url('/wp-content/themes/ppbs-theme/assets/fonts/roboto-500.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: local('Roboto Bold'), local('Roboto-Bold'),
    url('/wp-content/themes/ppbs-theme/assets/fonts/roboto-700.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* =============================================================
   COMPATIBILITY WEBFONTS: Wingdings & Symbol (MS Word bullets/icons)
   ============================================================= */
@font-face {
  font-family: 'Wingdings';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/wp-content/themes/ppbs-theme/assets/fonts/wingdings.woff2') format('woff2'),
    url('/wp-content/themes/ppbs-theme/assets/fonts/wingdings.ttf') format('truetype'),
    local('Wingdings');
}

@font-face {
  font-family: 'Symbol';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/wp-content/themes/ppbs-theme/assets/fonts/symbol.woff2') format('woff2'),
    url('/wp-content/themes/ppbs-theme/assets/fonts/symbol.ttf') format('truetype'),
    local('Symbol');
}

:root {
  --ppbs-navy: #122e53;
  --ppbs-navy-dark: #0a1b33;
  --ppbs-navy-light: #1c4273;
  --ppbs-gold: #efa220;
  --ppbs-gold-dark: #d68b0c;
  --ppbs-blue: #2563eb;
  --ppbs-blue-hover: #1d4ed8;
  --ppbs-bg-light: #f8fafc;
  --ppbs-text-main: #1e293b;
  --ppbs-text-muted: #64748b;
  --ppbs-border: #e2e8f0;
  --ppbs-font-latin: 'Rajdhani', 'Outfit', 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --ppbs-font-khmer: 'Content', 'Kantumruy Pro', 'Khmer OS Battambang', 'Khmer OS', 'Leelawadee UI', 'Khmer UI', sans-serif;
  --ppbs-font-rajdhani: 'Rajdhani', sans-serif;
  --ppbs-font-content: 'Content', sans-serif;
  --ppbs-radius-sm: 4px;
  --ppbs-radius-md: 8px;
  --ppbs-radius-lg: 16px;
  --ppbs-radius-full: 9999px;
  --ppbs-container: 1240px;
  --ppbs-transition: all 0.2s ease-in-out;
}

*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-size: 16px;
  scroll-behavior: smooth;
}

body {
  font-family: var(--ppbs-font-latin), var(--ppbs-font-khmer);
  color: var(--ppbs-text-main);
  background-color: #f1f5f9;
  line-height: 1.6;
  overflow-x: hidden;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  text-decoration: none;
  transition: var(--ppbs-transition);
}

.ppbs-container {
  width: 100%;
  max-width: var(--ppbs-container);
  margin: 0 auto;
  padding: 0 1.5rem;
}

/* Elementor Full Width Canvas / Main */
.ppbs-elementor-main,
.ppbs-elementor-content,
.ppbs-canvas-main {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* TOPBAR */
.ppbs-topbar {
  background-color: #0b1d36;
  color: #94a3b8;
  font-size: 0.82rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.ppbs-topbar__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 0.35rem;
  padding-bottom: 0.35rem;
}

.ppbs-topbar__contact {
  display: flex;
  align-items: center;
  gap: 1.5rem;
}

.ppbs-topbar__contact a {
  color: #cbd5e1;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}

.ppbs-topbar__contact a:hover {
  color: var(--ppbs-gold);
}

.ppbs-lang-switch {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  background: rgba(255, 255, 255, 0.1);
  padding: 2px;
  border-radius: 6px;
  border: 1px solid rgba(255, 255, 255, 0.15);
}

.ppbs-lang-switch a {
  color: #e2e8f0;
  font-size: 0.78rem;
  font-weight: 600;
  padding: 0.25rem 0.65rem;
  border-radius: 4px;
  transition: all 0.2s ease;
  line-height: 1.25;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.ppbs-lang-switch a.active {
  background-color: var(--ppbs-gold);
  color: #0a1b33 !important;
  font-weight: 700;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}

.ppbs-lang-switch a:not(.active):hover {
  background-color: rgba(255, 255, 255, 0.14);
  color: #ffffff !important;
}

/* HEADER BRAND (White Background) */
.ppbs-main-header {
  background-color: #ffffff !important;
  padding: 1.25rem 0;
  border-bottom: 1px solid #e2e8f0;
}

.ppbs-main-header__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.ppbs-brand-left {
  display: flex;
  align-items: center;
}

.ppbs-school-brand {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 1.25rem;
  text-decoration: none;
}

.ppbs-school-brand__logo {
  width: 90px !important;
  height: 90px !important;
  max-width: 90px !important;
  object-fit: contain;
  flex-shrink: 0;
}

.ppbs-school-brand__text {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.ppbs-school-brand__name {
  font-family: 'Times New Roman', Times, 'Tinos', 'Liberation Serif', serif !important;
  font-size: clamp(1.4rem, 2.5vw, 2.25rem) !important;
  font-weight: 700 !important;
  color: #0a1b33 !important;
  letter-spacing: 0.6px !important;
  line-height: 1.15;
  display: block;
}

.ppbs-school-brand__khmer {
  font-family: 'Moul', 'Khmer OS Muol Light', 'Khmer OS Muol', 'Content', serif !important;
  font-size: clamp(0.95rem, 1.4vw, 1.25rem) !important;
  font-weight: 400 !important;
  color: var(--ppbs-gold) !important;
  display: block;
  margin-top: 5px;
  line-height: 1.35;
}

.ppbs-header-actions {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.ppbs-donate-btn {
  background-color: var(--ppbs-gold);
  color: #0a1b33;
  font-family: 'Rajdhani', 'Roboto', sans-serif;
  font-weight: 700;
  font-size: 0.88rem;
  padding: 0.6rem 1.45rem;
  border-radius: var(--ppbs-radius-full);
  text-transform: uppercase;
  letter-spacing: 0.4px;
  box-shadow: 0 4px 10px rgba(239, 162, 32, 0.25);
  display: inline-block;
  line-height: 1.35;
}

.ppbs-donate-btn:hover {
  background-color: var(--ppbs-gold-dark);
  color: #ffffff;
  transform: translateY(-2px);
}

.ppbs-mobile-toggle {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0.4rem;
  color: var(--ppbs-navy);
}

/* -------------------------------------------------------------
   WORDPRESS STANDARD IMAGE ALIGNMENT & FLOATS
   ------------------------------------------------------------- */
.alignleft,
img.alignleft,
.elementor-widget-text-editor img.alignleft,
.elementor-widget-text-editor .alignleft,
.ppbs-page-body img.alignleft {
  float: left !important;
  margin: 4px 32px 20px 0 !important;
  max-width: 300px !important;
  height: auto !important;
  display: inline !important;
  border-radius: 4px;
}

.alignright,
img.alignright,
.elementor-widget-text-editor img.alignright,
.elementor-widget-text-editor .alignright,
.ppbs-page-body img.alignright {
  float: right !important;
  margin: 4px 0 20px 32px !important;
  max-width: 300px !important;
  height: auto !important;
  display: inline !important;
  border-radius: 4px;
}

.aligncenter,
img.aligncenter,
.elementor-widget-text-editor img.aligncenter,
.elementor-widget-text-editor .aligncenter,
.ppbs-page-body img.aligncenter {
  display: block !important;
  margin: 20px auto !important;
  clear: both;
}

.elementor-widget-text-editor p:has(img.alignleft),
.elementor-widget-text-editor p:has(img.alignright),
.ppbs-page-body p:has(img.alignleft),
.ppbs-page-body p:has(img.alignright) {
  margin-bottom: 0 !important;
  display: inline;
}

.elementor-widget-text-editor h1,
.elementor-widget-text-editor h2,
.elementor-widget-text-editor h3,
.elementor-widget-text-editor h4,
.elementor-widget-text-editor h5,
.elementor-widget-text-editor h6,
.ppbs-page-body h1,
.ppbs-page-body h2,
.ppbs-page-body h3,
.ppbs-page-body h4 {
  clear: none !important;
}

.elementor-widget-text-editor::after,
.elementor-widget-container::after,
.ppbs-page-body::after,
.ppbs-article::after {
  content: "";
  display: table;
  clear: both;
}

/* =============================================================
   STANDARD PAGE WRAPPER & TOP-LEFT TITLE (All Pages Except Home)
   ============================================================= */
.ppbs-page-wrapper {
  max-width: 1200px !important;
  margin: 0 auto !important;
  padding: 50px 24px 80px 24px !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

.ppbs-entry-header {
  margin-bottom: 30px !important;
  text-align: left !important;
  border-bottom: 2px solid #f1f5f9;
  padding-bottom: 15px;
}

.ppbs-page-title {
  color: #2563eb !important;
  font-size: 2.3rem !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  margin: 0 !important;
  text-align: left !important;
  letter-spacing: -0.5px;
}

.ppbs-page-body {
  font-size: 1.02rem;
  line-height: 1.8;
  color: #334155;
}

.ppbs-page-body h2,
.elementor-widget-text-editor h2 {
  color: #2563eb;
  font-size: 1.75rem !important;
  font-weight: 700 !important;
  margin-top: 0 !important;
  margin-bottom: 18px !important;
}

.ppbs-page-body p {
  margin-bottom: 1rem !important;
  line-height: 1.65 !important;
  color: #475569;
}

/* =============================================================
   COMPREHENSIVE CONTENT & LIST STYLING (ul, ol, li, strong, p)
   ============================================================= */
.ppbs-page-body ul,
.elementor-widget-text-editor ul,
.ppbs-article ul,
.entry-content ul {
  list-style-type: disc !important;
  margin: 10px 0 18px 0 !important;
  padding-left: 26px !important;
}

.ppbs-page-body ol,
.elementor-widget-text-editor ol,
.ppbs-article ol,
.entry-content ol {
  list-style-type: decimal !important;
  margin: 10px 0 18px 0 !important;
  padding-left: 26px !important;
}

.ppbs-page-body ul li,
.ppbs-page-body ol li,
.elementor-widget-text-editor ul li,
.elementor-widget-text-editor ol li,
.ppbs-article ul li,
.ppbs-article ol li,
.entry-content ul li,
.entry-content ol li {
  margin-bottom: 6px !important;
  line-height: 1.65 !important;
  color: #334155 !important;
  font-size: 1.02rem !important;
}

/* Nested lists */
.ppbs-page-body ul ul,
.ppbs-page-body ol ol,
.ppbs-page-body ul ol,
.ppbs-page-body ol ul,
.elementor-widget-text-editor ul ul,
.elementor-widget-text-editor ol ol,
.elementor-widget-text-editor ul ol,
.elementor-widget-text-editor ol ul {
  margin: 5px 0 8px 0 !important;
  padding-left: 22px !important;
}

.ppbs-page-body ul ul,
.elementor-widget-text-editor ul ul {
  list-style-type: circle !important;
}

/* Strong / Bold Text Highlighting */
h1 strong,
h1 b,
h2 strong,
h2 b,
h3 strong,
h3 b,
h4 strong,
h4 b,
h5 strong,
h5 b,
h6 strong,
h6 b,
.elementor-widget-text-editor h1 b,
.elementor-widget-text-editor h1 strong,
.elementor-widget-text-editor h2 b,
.elementor-widget-text-editor h2 strong,
.elementor-widget-text-editor h3 b,
.elementor-widget-text-editor h3 strong,
.elementor-widget-text-editor h4 b,
.elementor-widget-text-editor h4 strong {
  color: inherit !important;
  font-weight: 700 !important;
}

.ppbs-page-body p strong,
.ppbs-page-body p b,
.ppbs-page-body li strong,
.ppbs-page-body li b,
.elementor-widget-text-editor p strong,
.elementor-widget-text-editor p b,
.elementor-widget-text-editor li strong,
.elementor-widget-text-editor li b,
.ppbs-article p strong,
.ppbs-article p b {
  color: #122e53;
  font-weight: 700;
}

/* Blockquotes */
.ppbs-page-body blockquote,
.elementor-widget-text-editor blockquote,
.ppbs-article blockquote {
  border-left: 4px solid #2563eb !important;
  padding: 12px 24px !important;
  margin: 25px 0 !important;
  background-color: #f8fafc !important;
  border-radius: 0 6px 6px 0 !important;
  font-style: italic !important;
  color: #334155 !important;
}

/* NAVBAR (Dark Navy Solid Bar) */
.ppbs-navbar {
  background-color: #122e53 !important;
  width: 100% !important;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.15);
  position: sticky;
  top: 0;
  z-index: 999;
}

.ppbs-navbar__inner {
  display: flex;
  align-items: center;
}

.ppbs-nav {
  width: 100%;
}

.ppbs-nav ul {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
  flex-wrap: wrap;
}

.ppbs-nav ul li {
  position: relative;
  margin: 0;
}

.ppbs-nav ul li a {
  display: block;
  color: #ffffff !important;
  font-family: 'Rajdhani', 'Roboto', sans-serif;
  font-size: 0.92rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  padding: 0.82rem 1.1rem;
  transition: var(--ppbs-transition);
}

.ppbs-nav ul li a:hover {
  background-color: rgba(255, 255, 255, 0.12);
  color: var(--ppbs-gold) !important;
}

.ppbs-nav ul li.current-menu-item>a,
.ppbs-nav ul li.current_page_item>a {
  background-color: var(--ppbs-gold) !important;
  color: #ffffff !important;
}

/* Dropdown */
.ppbs-nav ul li ul.sub-menu {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 290px;
  background-color: #122e53 !important;
  flex-direction: column;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.35);
  border-radius: 0 0 4px 4px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: var(--ppbs-transition);
  border-top: none;
  z-index: 1000;
  padding: 0;
}

.ppbs-nav ul li:hover>ul.sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.ppbs-nav ul li ul.sub-menu li {
  width: 100%;
  margin: 0;
}

.ppbs-nav ul li ul.sub-menu li a {
  color: #ffffff !important;
  font-family: 'Rajdhani', 'Roboto', sans-serif;
  font-size: 0.85rem;
  text-transform: uppercase;
  font-weight: 700;
  letter-spacing: 0.4px;
  padding: 0.72rem 1.15rem !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
  border-radius: 0;
  line-height: 1.35;
}

.ppbs-nav ul li ul.sub-menu li:last-child a {
  border-bottom: none !important;
}

.ppbs-nav ul li ul.sub-menu li a:hover {
  background-color: rgba(255, 255, 255, 0.12) !important;
  color: var(--ppbs-gold) !important;
}

.ppbs-nav ul li ul.sub-menu li.current-menu-item>a,
.ppbs-nav ul li ul.sub-menu li.current_page_item>a {
  background-color: var(--ppbs-gold) !important;
  color: #0a1b33 !important;
}

/* HERO SECTION (Full-Screen Edge-to-Edge Image with Contained Text) */
.elementor-element-hero_section {
  position: relative;
  background-color: #0b1e36;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  min-height: calc(100vh - 140px) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 80px 0 !important;
  overflow: hidden;
}

.elementor-element-hero_section .elementor-container {
  max-width: 1000px !important;
  margin: 0 auto !important;
  padding: 0 24px !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
}

.elementor-element-hero_col .elementor-widget-wrap {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  text-align: center !important;
}

.elementor-element-hero_title {
  max-width: 880px !important;
  margin: 0 auto 20px auto !important;
}

.elementor-element-hero_title h1,
.elementor-element-hero_title .elementor-heading-title {
  color: #ffffff !important;
  font-family: 'Rajdhani', sans-serif !important;
  font-size: clamp(2.2rem, 4.2vw, 3.4rem) !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  letter-spacing: 0.3px !important;
  text-shadow: 0 3px 18px rgba(0, 0, 0, 0.85) !important;
  text-align: center !important;
  margin: 0 !important;
}

.elementor-element-hero_subtitle {
  max-width: 780px !important;
  margin: 0 auto 30px auto !important;
}

.elementor-element-hero_subtitle .elementor-heading-title {
  color: #ffffff !important;
  font-size: clamp(1.05rem, 1.8vw, 1.25rem) !important;
  font-weight: 500 !important;
  line-height: 1.7 !important;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.9) !important;
  text-align: center !important;
  margin: 0 !important;
}

.elementor-element-hero_btn {
  margin-top: 5px !important;
  text-align: center !important;
}

.elementor-element-hero_btn .elementor-button {
  background-color: #2563eb !important;
  color: #ffffff !important;
  font-family: 'Rajdhani', sans-serif !important;
  font-size: 1.15rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.5px !important;
  padding: 14px 34px !important;
  border-radius: 9999px !important;
  box-shadow: 0 6px 20px rgba(37, 99, 235, 0.45) !important;
  transition: all 0.3s ease !important;
}

.elementor-element-hero_btn .elementor-button:hover {
  background-color: #1d4ed8 !important;
  transform: translateY(-3px) !important;
  box-shadow: 0 8px 25px rgba(37, 99, 235, 0.6) !important;
}

.ppbs-hero-slider {
  position: relative;
  background-color: #0b1e36;
  min-height: calc(100vh - 130px) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden;
}

.ppbs-slider-track {
  width: 100%;
  position: relative;
  min-height: calc(100vh - 130px);
}

.ppbs-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.8s ease, transform 0.8s ease;
  background-size: cover;
  background-position: center center;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: calc(100vh - 130px);
}

.ppbs-slide.active {
  opacity: 1;
  visibility: visible;
  position: relative;
  min-height: calc(100vh - 130px);
}

.ppbs-slide__overlay {
  position: absolute;
  inset: 0;
  background: rgba(10, 27, 51, 0.55);
}

.ppbs-slide__content {
  position: relative;
  z-index: 2;
  text-align: center;
  max-width: 980px;
  margin: 0 auto;
  padding: 5rem 1rem;
}

.ppbs-slide__badge {
  display: inline-block;
  background: var(--ppbs-gold);
  color: #0a1b33;
  font-size: 0.82rem;
  font-weight: 700;
  text-transform: uppercase;
  padding: 0.35rem 1rem;
  border-radius: var(--ppbs-radius-full);
  margin-bottom: 1.25rem;
}

.ppbs-slide__title {
  color: #ffffff !important;
  font-size: clamp(1.85rem, 3.8vw, 2.9rem);
  font-weight: 800;
  line-height: 1.25;
  margin-bottom: 1.25rem;
  text-shadow: 0 3px 12px rgba(0, 0, 0, 0.8);
}

.ppbs-slide__desc {
  color: #ffffff !important;
  font-size: clamp(1rem, 1.8vw, 1.2rem);
  font-weight: 500;
  line-height: 1.65;
  max-width: 840px;
  margin: 0 auto 2.25rem auto;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.85);
}

.ppbs-slide__actions {
  display: flex;
  gap: 1.25rem;
  justify-content: center;
  flex-wrap: wrap;
}

.ppbs-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.85rem 2rem;
  font-size: 0.95rem;
  font-weight: 700;
  border-radius: var(--ppbs-radius-full);
  transition: var(--ppbs-transition);
  cursor: pointer;
  text-align: center;
  border: none;
}

.ppbs-btn--blue {
  background-color: var(--ppbs-blue);
  color: #ffffff !important;
  box-shadow: 0 6px 18px rgba(37, 99, 235, 0.4);
}

.ppbs-btn--blue:hover {
  background-color: var(--ppbs-blue-hover);
  transform: translateY(-2px);
  box-shadow: 0 8px 22px rgba(37, 99, 235, 0.5);
}

.ppbs-btn--gold {
  background-color: var(--ppbs-gold);
  color: #0a1b33 !important;
  box-shadow: 0 6px 18px rgba(239, 162, 32, 0.35);
}

.ppbs-btn--gold:hover {
  background-color: var(--ppbs-gold-dark);
  color: #ffffff !important;
  transform: translateY(-2px);
}

.ppbs-btn--navy {
  background-color: var(--ppbs-navy);
  color: #ffffff !important;
  border-radius: var(--ppbs-radius-md);
}

.ppbs-btn--navy:hover {
  background-color: var(--ppbs-navy-light);
  transform: translateY(-2px);
}

.ppbs-btn--sm {
  padding: 0.45rem 1rem;
  font-size: 0.82rem;
  border-radius: var(--ppbs-radius-sm);
}

.ppbs-slider-nav {
  position: absolute;
  bottom: 2rem;
  right: 2rem;
  display: flex;
  gap: 0.6rem;
  z-index: 10;
}

.ppbs-slider-btn {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.2);
  border: 1px solid rgba(255, 255, 255, 0.4);
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: var(--ppbs-transition);
  backdrop-filter: blur(4px);
}

.ppbs-slider-btn:hover {
  background: var(--ppbs-gold);
  color: #0a1b33;
  border-color: var(--ppbs-gold);
}

/* SECTIONS */
.ppbs-section {
  padding: 4.5rem 0;
}

.ppbs-section--alt {
  background-color: #ffffff;
}

.ppbs-section-header {
  text-align: center;
  max-width: 720px;
  margin: 0 auto 3rem auto;
}

.ppbs-section-subtitle {
  display: inline-block;
  font-size: 0.85rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--ppbs-gold-dark);
  margin-bottom: 0.5rem;
  background: rgba(239, 162, 32, 0.12);
  padding: 0.25rem 0.85rem;
  border-radius: var(--ppbs-radius-full);
}

.ppbs-section-title {
  font-size: clamp(1.5rem, 2.7vw, 2.1rem);
  color: var(--ppbs-navy);
  margin-bottom: 0.75rem;
}

.ppbs-section-title::after {
  content: '';
  display: block;
  width: 50px;
  height: 4px;
  background: var(--ppbs-gold);
  margin: 0.75rem auto 0 auto;
  border-radius: 2px;
}

.ppbs-home-editor-content {
  background: #ffffff;
  padding: 2.5rem;
  border-radius: var(--ppbs-radius-md);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
  border: 1px solid var(--ppbs-border);
  margin-bottom: 2.5rem;
}

.ppbs-welcome-grid {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 3.5rem;
  align-items: center;
}

.ppbs-feature-list {
  list-style: none;
  margin: 1.5rem 0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.ppbs-feature-list li {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-weight: 500;
}

.ppbs-feature-list li svg {
  color: var(--ppbs-gold-dark);
  flex-shrink: 0;
}

/* Programs Grid */
.ppbs-programs-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 2rem;
}

.ppbs-program-card {
  background: #ffffff;
  border-radius: var(--ppbs-radius-md);
  overflow: hidden;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
  border: 1px solid var(--ppbs-border);
  transition: var(--ppbs-transition);
  display: flex;
  flex-direction: column;
}

.ppbs-program-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 12px 25px rgba(18, 46, 83, 0.12);
  border-color: var(--ppbs-gold);
}

.ppbs-program-card__thumb {
  height: 170px;
  position: relative;
}

.ppbs-program-card__tag {
  position: absolute;
  top: 1rem;
  left: 1rem;
  background: var(--ppbs-gold);
  color: #0a1b33;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  padding: 0.2rem 0.6rem;
  border-radius: 4px;
}

.ppbs-program-card__body {
  padding: 1.75rem;
  flex-grow: 1;
  display: flex;
  flex-direction: column;
}

.ppbs-program-card__title {
  font-size: 1.2rem;
  color: var(--ppbs-navy);
  margin-bottom: 0.75rem;
}

.ppbs-program-card__desc {
  font-size: 0.95rem;
  color: var(--ppbs-text-muted);
  margin-bottom: 1.5rem;
  flex-grow: 1;
}

.ppbs-program-card__footer {
  border-top: 1px solid #f1f5f9;
  padding-top: 1rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.ppbs-program-card__meta {
  font-size: 0.85rem;
  color: var(--ppbs-text-muted);
}

/* News Grid */
.ppbs-news-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 2rem;
}

.ppbs-news-card {
  background: #ffffff;
  border-radius: var(--ppbs-radius-md);
  overflow: hidden;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
  border: 1px solid var(--ppbs-border);
  transition: var(--ppbs-transition);
}

.ppbs-news-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 20px rgba(18, 46, 83, 0.1);
}

.ppbs-news-card__thumb {
  height: 200px;
  overflow: hidden;
  position: relative;
}

.ppbs-news-card__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.ppbs-news-card:hover .ppbs-news-card__thumb img {
  transform: scale(1.05);
}

.ppbs-news-card__body {
  padding: 1.5rem;
}

.ppbs-news-card__date {
  font-size: 0.8rem;
  color: var(--ppbs-gold-dark);
  font-weight: 600;
  text-transform: uppercase;
  margin-bottom: 0.5rem;
  display: block;
}

.ppbs-news-card__title {
  font-size: 1.15rem;
  margin-bottom: 0.75rem;
}

.ppbs-news-card__title a {
  color: var(--ppbs-navy);
}

.ppbs-news-card__title a:hover {
  color: var(--ppbs-gold);
}

.ppbs-news-card__excerpt {
  font-size: 0.92rem;
  color: var(--ppbs-text-muted);
  margin-bottom: 1rem;
}

/* PAGES & INNER CONTENT */
.ppbs-page-header {
  background: linear-gradient(135deg, var(--ppbs-navy-dark), var(--ppbs-navy));
  color: #ffffff;
  padding: 3.5rem 0;
  text-align: center;
}

.ppbs-page-header h1 {
  color: #ffffff;
  margin-bottom: 0.5rem;
}

.ppbs-breadcrumbs {
  font-size: 0.875rem;
  color: #cbd5e1;
}

.ppbs-breadcrumbs a {
  color: var(--ppbs-gold);
}

.ppbs-content-area {
  padding: 3.5rem 0;
}

.ppbs-article {
  background: #ffffff;
  padding: 3rem;
  border-radius: var(--ppbs-radius-md);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04);
  border: 1px solid var(--ppbs-border);
}

.ppbs-article h2 {
  color: var(--ppbs-navy);
  margin-top: 1.5rem;
  margin-bottom: 0.85rem;
  font-size: 1.6rem;
}

.ppbs-article h3 {
  color: var(--ppbs-navy);
  margin-top: 1.25rem;
  margin-bottom: 0.65rem;
  font-size: 1.3rem;
}

.ppbs-article p {
  font-size: 1.05rem;
  line-height: 1.8;
  margin-bottom: 1.5rem;
  color: #334155;
}

.ppbs-article ul,
.ppbs-article ol {
  margin-left: 2rem;
  margin-bottom: 1.5rem;
}

.ppbs-article li {
  margin-bottom: 0.5rem;
  color: #334155;
}

.ppbs-article figure {
  margin: 1.5rem 0;
}

.ppbs-article figure img {
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

/* =============================================================
   UNIFIED HOMEPAGE SECTIONS SPACING & STYLES (85px Uniform Rhythm)
   ============================================================= */

/* 1. Programs at PPBS */
.elementor-element-programs_section {
  padding: 85px 0 !important;
  background-color: #ffffff !important;
}

.elementor-element-programs_heading h2 {
  font-size: 2.2rem !important;
  font-weight: 800 !important;
  color: var(--ppbs-navy) !important;
  margin-bottom: 45px !important;
  text-align: center !important;
}

.elementor-widget-image-box .elementor-image-box-wrapper {
  text-align: center;
  width: 100%;
}

.elementor-widget-image-box .elementor-image-box-img {
  display: block !important;
  width: 100% !important;
  margin-bottom: 1.25rem !important;
}

.elementor-widget-image-box .elementor-image-box-img a {
  display: block !important;
  width: 100% !important;
}

.elementor-widget-image-box .elementor-image-box-img img {
  width: 100% !important;
  max-width: 100% !important;
  height: 200px !important;
  object-fit: cover !important;
  border-radius: 6px !important;
  display: block !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.elementor-widget-image-box .elementor-image-box-wrapper:hover .elementor-image-box-img img {
  transform: translateY(-4px) scale(1.02);
  box-shadow: 0 10px 24px rgba(18, 46, 83, 0.16);
}

.elementor-widget-image-box .elementor-image-box-title {
  font-size: 1.1rem !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  margin-bottom: 0.5rem !important;
}

.elementor-widget-image-box .elementor-image-box-title a {
  color: var(--ppbs-navy) !important;
  font-weight: 700;
  transition: color 0.2s ease;
}

.elementor-widget-image-box .elementor-image-box-title a:hover {
  color: var(--ppbs-gold) !important;
}

.elementor-element-prog_col_1 .elementor-image-box-description,
.elementor-element-prog_col_2 .elementor-image-box-description,
.elementor-element-prog_col_3 .elementor-image-box-description,
.elementor-element-prog_col_4 .elementor-image-box-description {
  display: block !important;
  font-size: 0.9rem !important;
  color: #64748b !important;
  line-height: 1.5 !important;
  margin-top: 6px !important;
}

/* Faculty Profiles Grid (Circular Rounded Portraits & Centered Info) */
.elementor-element-sec_fac_row1 .elementor-image-box-wrapper,
.elementor-element-sec_fac_row2 .elementor-image-box-wrapper {
  text-align: center !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
}

.elementor-element-sec_fac_row1 .elementor-image-box-img,
.elementor-element-sec_fac_row2 .elementor-image-box-img {
  width: 215px !important;
  height: 215px !important;
  max-width: 215px !important;
  margin: 0 auto 18px auto !important;
}

.elementor-element-sec_fac_row1 .elementor-image-box-img img,
.elementor-element-sec_fac_row2 .elementor-image-box-img img {
  width: 215px !important;
  height: 215px !important;
  max-width: 215px !important;
  border-radius: 50% !important;
  object-fit: cover !important;
  box-shadow: 0 4px 14px rgba(18, 46, 83, 0.12) !important;
  transition: transform 0.3s ease, box-shadow 0.3s ease !important;
}

.elementor-element-sec_fac_row1 .elementor-image-box-wrapper:hover .elementor-image-box-img img,
.elementor-element-sec_fac_row2 .elementor-image-box-wrapper:hover .elementor-image-box-img img {
  transform: scale(1.04);
  box-shadow: 0 8px 24px rgba(18, 46, 83, 0.2) !important;
}

.elementor-element-sec_fac_row1 .elementor-image-box-title,
.elementor-element-sec_fac_row2 .elementor-image-box-title {
  font-size: 1.22rem !important;
  font-weight: 700 !important;
  color: var(--ppbs-navy) !important;
  margin-bottom: 8px !important;
  text-align: center !important;
}

.elementor-element-sec_fac_row1 .elementor-image-box-description,
.elementor-element-sec_fac_row2 .elementor-image-box-description {
  display: block !important;
  font-size: 0.9rem !important;
  line-height: 1.6 !important;
  color: #64748b !important;
  text-align: center !important;
  white-space: pre-line !important;
}

/* =============================================================
   CAMPUS CAROUSEL SLIDER (Custom & Elementor Image Carousel)
   ============================================================= */
.ppbs-campus-intro {
  font-size: 1.08rem;
  line-height: 1.8;
  color: #334155;
  margin-bottom: 30px;
}

.ppbs-campus-slider-wrapper,
.elementor-widget-image-carousel {
  position: relative;
  width: 100%;
  margin: 20px 0 40px 0;
}

.ppbs-campus-slider,
.elementor-image-carousel-wrapper {
  position: relative;
  overflow: hidden;
  width: 100%;
  border-radius: 12px;
  padding-bottom: 50px !important;
}

.ppbs-campus-track,
.elementor-image-carousel.swiper-wrapper {
  display: flex;
  transition: transform 0.5s cubic-bezier(0.25, 1, 0.5, 1);
  will-change: transform;
}

.ppbs-campus-slide,
.elementor-image-carousel .swiper-slide {
  box-sizing: border-box !important;
  padding: 0 10px !important;
}

.ppbs-campus-card,
.elementor-image-carousel .swiper-slide figure,
.elementor-image-carousel .swiper-slide-inner {
  position: relative;
  border-radius: 10px !important;
  overflow: hidden !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08) !important;
  background-color: #fff !important;
  transition: transform 0.3s ease, box-shadow 0.3s ease !important;
  margin: 0 !important;
}

.ppbs-campus-card:hover,
.elementor-image-carousel .swiper-slide:hover figure,
.elementor-image-carousel .swiper-slide:hover .swiper-slide-inner {
  transform: translateY(-4px) !important;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.14) !important;
}

.ppbs-campus-card img,
.elementor-image-carousel .swiper-slide img,
.elementor-image-carousel .swiper-slide-image {
  width: 100% !important;
  height: 380px !important;
  object-fit: cover !important;
  display: block !important;
  border-radius: 10px !important;
}

@media (max-width: 768px) {

  .ppbs-campus-card img,
  .elementor-image-carousel .swiper-slide img,
  .elementor-image-carousel .swiper-slide-image {
    height: 260px !important;
  }
}

/* Slider Prev / Next Buttons */
.ppbs-campus-btn,
.elementor-swiper-button {
  position: absolute !important;
  top: calc(50% - 25px) !important;
  transform: translateY(-50%) !important;
  width: 46px !important;
  height: 46px !important;
  background-color: rgba(18, 46, 83, 0.85) !important;
  color: #fff !important;
  border: 2px solid rgba(255, 255, 255, 0.7) !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  z-index: 10 !important;
  transition: background-color 0.2s, transform 0.2s !important;
  font-size: 24px;
  line-height: 1;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
}

.ppbs-campus-btn:hover,
.elementor-swiper-button:hover {
  background-color: #2563eb !important;
  transform: translateY(-50%) scale(1.1) !important;
}

.ppbs-campus-prev,
.elementor-swiper-button-prev {
  left: 20px !important;
}

.ppbs-campus-next,
.elementor-swiper-button-next {
  right: 20px !important;
}

.elementor-swiper-button svg {
  width: 18px !important;
  height: 18px !important;
  fill: #ffffff !important;
  color: #ffffff !important;
}

/* Pagination Dots */
.ppbs-campus-dots,
.elementor-widget-image-carousel .swiper-pagination {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 8px !important;
  position: absolute !important;
  bottom: 12px !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 10 !important;
}

.ppbs-campus-dot,
.elementor-widget-image-carousel .swiper-pagination-bullet {
  width: 10px !important;
  height: 10px !important;
  border-radius: 50% !important;
  border: none !important;
  background-color: #cbd5e1 !important;
  opacity: 1 !important;
  margin: 0 4px !important;
  cursor: pointer !important;
  transition: all 0.3s ease !important;
  padding: 0 !important;
}

.ppbs-campus-dot.active,
.elementor-widget-image-carousel .swiper-pagination-bullet-active {
  background-color: #2563eb !important;
  transform: scale(1.2) !important;
  width: 24px !important;
  border-radius: 10px !important;
}

/* Elementor Google Maps Widget Styling */
.elementor-widget-google_maps {
  width: 100%;
  margin: 25px 0 35px 0;
}

.elementor-widget-google_maps .elementor-custom-embed,
.elementor-widget-google_maps iframe {
  width: 100% !important;
  height: 460px !important;
  border-radius: 12px !important;
  border: 1px solid #e2e8f0 !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08) !important;
  display: block;
}


/* 2. Why Choose PPBS */
.elementor-element-why_choose_section {
  padding: 85px 0 !important;
  background-color: #ffffff !important;
}

.elementor-element-why_choose_heading h2 {
  font-size: 2.2rem !important;
  font-weight: 800 !important;
  color: var(--ppbs-navy) !important;
  margin-bottom: 45px !important;
  text-align: center !important;
}

.elementor-element-why_inner_sec>.elementor-container {
  display: flex !important;
  gap: 25px !important;
  justify-content: center !important;
}

.elementor-element-why_col_1,
.elementor-element-why_col_2,
.elementor-element-why_col_3,
.elementor-element-56cda867,
.elementor-element-61911f7d,
.elementor-element-7c2d4ce5 {
  background-color: #f5f7fa !important;
  border-radius: 4px !important;
  padding: 55px 30px !important;
  text-align: center !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 220px !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.02);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.elementor-element-why_col_1:hover,
.elementor-element-why_col_2:hover,
.elementor-element-why_col_3:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 20px rgba(18, 46, 83, 0.08);
}

.elementor-element-why_col_1 h4,
.elementor-element-why_col_2 h4,
.elementor-element-why_col_3 h4 {
  font-size: 1.25rem !important;
  font-weight: 700 !important;
  color: var(--ppbs-navy) !important;
  margin-bottom: 12px !important;
}

.elementor-element-why_col_1 .elementor-divider-separator,
.elementor-element-why_col_2 .elementor-divider-separator,
.elementor-element-why_col_3 .elementor-divider-separator {
  width: 32px !important;
  margin: 12px auto 16px auto !important;
  border-top: 3px solid #2563eb !important;
}

.elementor-element-why_col_1 p,
.elementor-element-why_col_2 p,
.elementor-element-why_col_3 p {
  font-size: 0.95rem !important;
  line-height: 1.6 !important;
  color: #64748b !important;
  margin: 0 !important;
}

/* 3. Testimonials */
.elementor-element-testimonials_section {
  padding: 85px 0 !important;
  background-color: #ffffff !important;
}

.elementor-element-testimonials_heading h2 {
  font-size: 2.2rem !important;
  font-weight: 800 !important;
  color: var(--ppbs-navy) !important;
  margin-bottom: 45px !important;
  text-align: center !important;
}

.elementor-widget-testimonial .elementor-testimonial-wrapper {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 10px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
  height: 100% !important;
}

.elementor-widget-testimonial .elementor-testimonial-content {
  font-size: 0.98rem !important;
  line-height: 1.75 !important;
  color: #334155 !important;
  margin-bottom: 1.5rem !important;
}

.elementor-widget-testimonial .elementor-testimonial-meta {
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
  margin-top: auto !important;
}

.elementor-widget-testimonial .elementor-testimonial-image {
  flex-shrink: 0;
  width: 70px !important;
  height: 70px !important;
}

.elementor-widget-testimonial .elementor-testimonial-image img {
  width: 70px !important;
  height: 70px !important;
  border-radius: 50% !important;
  object-fit: cover !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12) !important;
}

.elementor-widget-testimonial .elementor-testimonial-name {
  font-size: 0.92rem !important;
  font-weight: 700 !important;
  color: #1e88e5 !important;
  line-height: 1.35 !important;
}

.elementor-widget-testimonial .elementor-testimonial-job {
  display: none !important;
}

/* 4. Want To Help Support Us (Centered CTA Section) */
.elementor-element-donate_section,
.elementor-element-2ca33bb4 {
  padding: 85px 0 !important;
  background: #ffffff !important;
  text-align: center !important;
}

.elementor-element-donate_section .elementor-container,
.elementor-element-2ca33bb4 .elementor-container {
  min-height: 220px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-items: center !important;
  text-align: center !important;
}

.elementor-element-donate_col .elementor-widget-wrap,
.elementor-element-79a540b2 .elementor-widget-wrap {
  text-align: center !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
}

.elementor-element-donate_title,
.elementor-element-donate_title h2,
.elementor-element-367d420f,
.elementor-element-367d420f h2 {
  font-size: 2.2rem !important;
  font-weight: 800 !important;
  color: var(--ppbs-navy) !important;
  margin-bottom: 12px !important;
  text-align: center !important;
  width: 100% !important;
}

.elementor-element-donate_desc,
.elementor-element-donate_desc p,
.elementor-element-600aa1ba,
.elementor-element-600aa1ba p {
  font-size: 1.15rem !important;
  color: #64748b !important;
  margin-bottom: 25px !important;
  text-align: center !important;
  width: 100% !important;
}

.elementor-element-donate_button,
.elementor-element-3c82758d {
  text-align: center !important;
  width: 100% !important;
}

.elementor-element-donate_button .elementor-button-wrapper,
.elementor-element-3c82758d .elementor-button-wrapper {
  text-align: center !important;
}

.elementor-element-donate_button .elementor-button,
.elementor-element-3c82758d .elementor-button {
  background-color: #3b82f6 !important;
  color: #ffffff !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  padding: 12px 36px !important;
  border-radius: 4px !important;
  box-shadow: 0 4px 14px rgba(59, 130, 246, 0.35) !important;
  transition: all 0.2s ease !important;
  display: inline-block !important;
  margin: 0 auto !important;
}

.elementor-element-donate_button .elementor-button:hover,
.elementor-element-3c82758d .elementor-button:hover {
  background-color: #2563eb !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 18px rgba(37, 99, 235, 0.45) !important;
}

/* FOOTER */
.ppbs-footer {
  background-color: #122e53 !important;
  color: #94a3b8;
  padding-top: 4.5rem;
  border-top: 4px solid var(--ppbs-gold);
}

.ppbs-footer-grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1.2fr;
  gap: 3rem;
  padding-bottom: 3.5rem;
}

.ppbs-footer-widget h4 {
  color: #ffffff;
  font-size: 1.1rem;
  margin-bottom: 1.5rem;
  position: relative;
  padding-bottom: 0.5rem;
}

.ppbs-footer-widget h4::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 30px;
  height: 2px;
  background: var(--ppbs-gold);
}

.ppbs-footer-links {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.ppbs-footer-links a {
  color: #94a3b8;
  font-size: 0.92rem;
}

.ppbs-footer-links a:hover {
  color: var(--ppbs-gold);
  transform: translateX(4px);
}

.ppbs-footer-contact {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.ppbs-footer-contact-item {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  font-size: 0.92rem;
}

.ppbs-footer-contact-item svg {
  color: var(--ppbs-gold);
  flex-shrink: 0;
  margin-top: 0.2rem;
}

.ppbs-footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding: 1.5rem 0;
  font-size: 0.85rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem;
}

.ppbs-footer-bottom a {
  color: var(--ppbs-gold);
}

.ppbs-back-to-top {
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  width: 42px;
  height: 42px;
  background: var(--ppbs-gold);
  color: #0a1b33;
  border: none;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transition: var(--ppbs-transition);
  z-index: 999;
}

.ppbs-back-to-top.visible {
  opacity: 1;
  visibility: visible;
}

.ppbs-mobile-nav-cta {
  display: none;
}

.ppbs-submenu-toggle {
  display: none;
}

@media (max-width: 1024px) {
  .ppbs-footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: 2.5rem;
  }
}

@media (max-width: 860px) {

  /* TOPBAR (Clean spacing, margins, and padding on mobile) */
  .ppbs-topbar {
    padding: 0.65rem 0 !important;
    background-color: #0b1e36 !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
  }

  .ppbs-topbar .ppbs-container {
    padding: 0 16px !important;
  }

  .ppbs-topbar__inner {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 0.85rem !important;
    padding: 0 !important;
  }

  .ppbs-topbar__contact {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 0.35rem !important;
  }

  .ppbs-topbar__contact a {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.45rem !important;
    font-size: 0.78rem !important;
    line-height: 1.25 !important;
    color: #e2e8f0 !important;
  }

  .ppbs-topbar__contact a svg {
    width: 14px !important;
    height: 14px !important;
    color: var(--ppbs-gold) !important;
    flex-shrink: 0 !important;
  }

  .ppbs-topbar__contact span {
    font-size: 0.78rem !important;
    letter-spacing: 0.2px !important;
  }

  .ppbs-topbar__right {
    display: flex !important;
    align-items: center !important;
    flex-shrink: 0 !important;
  }

  .ppbs-lang-switch {
    display: inline-flex !important;
    align-items: center !important;
    padding: 2px !important;
    background: rgba(255, 255, 255, 0.1) !important;
    border: 1px solid rgba(255, 255, 255, 0.15) !important;
    border-radius: 6px !important;
    gap: 2px !important;
  }

  .ppbs-lang-switch a {
    font-size: 0.74rem !important;
    font-weight: 600 !important;
    padding: 0.2rem 0.5rem !important;
    border-radius: 4px !important;
    line-height: 1.2 !important;
  }

  /* HEADER & BRANDING */
  .ppbs-main-header {
    padding: 0.6rem 0 !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 100000 !important;
    background: #ffffff !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08) !important;
  }

  .ppbs-school-brand {
    gap: 0.75rem !important;
  }

  .ppbs-school-brand__logo {
    width: 50px !important;
    height: 50px !important;
    max-width: 50px !important;
  }

  .ppbs-school-brand__name {
    font-size: 1.15rem !important;
    line-height: 1.15 !important;
    letter-spacing: 0.2px !important;
  }

  .ppbs-school-brand__khmer {
    font-size: 0.92rem !important;
    margin-top: 2px !important;
  }

  .ppbs-header-actions .ppbs-donate-btn {
    display: none !important;
  }

  .ppbs-mobile-toggle {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 8px;
    background: #f8fafc;
    border: 1px solid #cbd5e1;
    color: #122e53;
    padding: 0;
    cursor: pointer;
    transition: all 0.2s ease;
  }

  .ppbs-mobile-toggle * {
    pointer-events: none !important;
  }

  .ppbs-mobile-toggle:hover,
  .ppbs-mobile-toggle.active {
    background: var(--ppbs-gold);
    color: #0a1b33;
    border-color: var(--ppbs-gold-dark);
  }

  /* NAVBAR & FIXED OVERLAY DRAWER (Covers body content without pushing page down) */
  body.ppbs-menu-open {
    overflow: hidden !important;
  }

  .ppbs-navbar {
    position: static !important;
    background: transparent !important;
    box-shadow: none !important;
    width: 100% !important;
  }

  .ppbs-navbar .ppbs-container {
    padding: 0 !important;
    max-width: 100% !important;
  }

  .ppbs-nav {
    display: none !important;
    position: fixed !important;
    top: 104px;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    height: calc(100vh - 104px);
    height: calc(100dvh - 104px);
    background-color: #122e53 !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior-y: contain !important;
    scroll-behavior: smooth !important;
    padding: 12px 14px 80px 14px !important;
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.45) !important;
    z-index: 999999 !important;
  }

  .ppbs-nav.active {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  .ppbs-nav::-webkit-scrollbar {
    width: 4px;
  }

  .ppbs-nav::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.25);
    border-radius: 4px;
  }

  .ppbs-nav ul {
    flex-direction: column !important;
    gap: 2px !important;
  }

  .ppbs-nav ul li a {
    padding: 0.6rem 0.75rem !important;
    font-size: 0.88rem !important;
    font-weight: 700 !important;
    color: #ffffff !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 6px;
    letter-spacing: 0.35px !important;
    outline: none !important;
    -webkit-tap-highlight-color: transparent !important;
  }

  .ppbs-nav ul li a:focus,
  .ppbs-nav ul li a:active {
    outline: none !important;
    box-shadow: none !important;
  }

  /* Active Standalone Top-Level Menu Item (e.g. HOME when on front page) */
  .ppbs-nav ul>li:not(.menu-item-has-children).current-menu-item>a,
  .ppbs-nav ul>li:not(.menu-item-has-children).current_page_item>a {
    background-color: var(--ppbs-gold) !important;
    color: #0a1b33 !important;
  }

  /* Active Parent with Submenu (e.g. ACADEMICS when viewing ADCM) */
  .ppbs-nav ul>li.menu-item-has-children.current-menu-item>a,
  .ppbs-nav ul>li.menu-item-has-children.current_page_item>a,
  .ppbs-nav ul>li.menu-item-has-children.current-menu-ancestor>a,
  .ppbs-nav ul>li.menu-item-has-children.current_page_ancestor>a,
  .ppbs-nav ul>li.menu-item-has-children.current-menu-parent>a {
    background-color: rgba(255, 255, 255, 0.08) !important;
    color: var(--ppbs-gold) !important;
    border-left: 3px solid var(--ppbs-gold) !important;
  }

  .ppbs-nav ul li.menu-item-has-children>a {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
  }

  .ppbs-submenu-toggle {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.08);
    color: var(--ppbs-gold) !important;
    transition: transform 0.25s ease, background-color 0.25s ease;
    flex-shrink: 0;
  }

  .ppbs-nav ul li.submenu-open>a .ppbs-submenu-toggle,
  .ppbs-nav ul li.menu-item-has-children.submenu-open>a .ppbs-submenu-toggle {
    transform: rotate(180deg) !important;
    background: var(--ppbs-gold) !important;
    color: #0a1b33 !important;
  }

  .ppbs-nav ul li ul.sub-menu {
    display: none !important;
    position: static !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transform: none !important;
    background-color: rgba(0, 0, 0, 0.28) !important;
    box-shadow: none !important;
    border-top: none !important;
    border-left: 3px solid var(--ppbs-gold) !important;
    border-radius: 6px !important;
    padding: 4px 0 !important;
    margin: 4px 0 6px 0 !important;
    min-width: 100% !important;
    width: 100% !important;
  }

  .ppbs-nav ul li.submenu-open>ul.sub-menu,
  .ppbs-nav ul li.menu-item-has-children.submenu-open>ul.sub-menu {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    height: auto !important;
  }

  .ppbs-nav ul li ul.sub-menu li a,
  .ppbs-nav ul li.submenu-open>ul.sub-menu li a {
    color: #e2e8f0 !important;
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    font-size: 0.9rem !important;
    font-weight: 600 !important;
    padding: 0.55rem 0.85rem !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06) !important;
    border-radius: 4px;
    letter-spacing: 0.2px !important;
    background: transparent !important;
  }

  /* Active Child item in Submenu */
  .ppbs-nav ul li ul.sub-menu li.current-menu-item>a,
  .ppbs-nav ul li ul.sub-menu li.current_page_item>a,
  .ppbs-nav ul li.submenu-open>ul.sub-menu li.current-menu-item>a,
  .ppbs-nav ul li.submenu-open>ul.sub-menu li.current_page_item>a {
    background-color: var(--ppbs-gold) !important;
    color: #0a1b33 !important;
    font-weight: 700 !important;
  }

  .ppbs-nav ul li ul.sub-menu li a:hover {
    color: var(--ppbs-gold) !important;
    background: rgba(255, 255, 255, 0.08) !important;
  }

  .ppbs-mobile-nav-cta {
    display: block;
    padding: 0.85rem 0.25rem 0.5rem 0.25rem;
  }

  .ppbs-mobile-nav-cta .ppbs-btn {
    display: flex;
    width: 100%;
    text-align: center;
    justify-content: center;
    font-family: 'Rajdhani', sans-serif !important;
    font-weight: 700 !important;
    font-size: 0.98rem !important;
    padding: 0.65rem !important;
    border-radius: 25px !important;
  }

  /* HERO SECTION */
  .elementor-element-hero_section {
    min-height: 480px !important;
    padding: 50px 0 !important;
  }

  .elementor-element-hero_title {
    max-width: 95% !important;
    margin-bottom: 14px !important;
  }

  .elementor-element-hero_title h1,
  .elementor-element-hero_title .elementor-heading-title {
    font-size: clamp(1.45rem, 5.5vw, 1.95rem) !important;
    line-height: 1.28 !important;
  }

  .elementor-element-hero_subtitle {
    max-width: 95% !important;
    margin-bottom: 22px !important;
  }

  .elementor-element-hero_subtitle .elementor-heading-title {
    font-size: 0.92rem !important;
    line-height: 1.55 !important;
  }

  .elementor-element-hero_btn .elementor-button {
    font-size: 1rem !important;
    padding: 11px 24px !important;
  }

  /* INNER PAGES & LAYOUT */
  .ppbs-page-wrapper {
    padding: 30px 16px 60px 16px !important;
  }

  .ppbs-page-title {
    font-size: 1.65rem !important;
    margin-bottom: 18px !important;
  }

  .ppbs-welcome-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .ppbs-footer-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
}

@media (max-width: 480px) {
  .ppbs-topbar__contact {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.2rem;
  }

  .ppbs-school-brand__name {
    font-size: 1.05rem !important;
  }

  .ppbs-school-brand__khmer {
    font-size: 0.88rem !important;
  }
}

/* Donorbox Full-Width Embed */
.ppbs-donorbox-container,
.ppbs-donorbox-container iframe {
  width: 100% !important;
  max-width: 100% !important;
  border: 0 !important;
  overflow: hidden !important;
}

/* =============================================================
   KHMER TYPOGRAPHY & MICROSOFT EDGE ELEMENTOR COMPATIBILITY
   ============================================================= */

/* 1. Global Typography Variables for Khmer Pages */
html[lang^="km"],
html[lang^="km"] body,
html[lang^="km"] .elementor,
html[lang^="km"] .elementor-kit-941,
:lang(km) {
  --ppbs-font-main: 'Content', 'Khmer OS Content', 'Kantumruy Pro', 'Khmer OS Battambang', 'Khmer OS', 'Leelawadee UI', 'Khmer UI', sans-serif !important;
  --e-global-typography-primary-font-family: 'Content', 'Khmer OS Content', 'Kantumruy Pro', 'Khmer OS Battambang', 'Khmer OS', 'Leelawadee UI', 'Khmer UI', sans-serif !important;
  --e-global-typography-secondary-font-family: 'Content', 'Khmer OS Content', 'Kantumruy Pro', 'Khmer OS Battambang', 'Khmer OS', 'Leelawadee UI', 'Khmer UI', sans-serif !important;
  --e-global-typography-text-font-family: 'Content', 'Khmer OS Content', 'Kantumruy Pro', 'Khmer OS Battambang', 'Khmer OS', 'Leelawadee UI', 'Khmer UI', sans-serif !important;
  --e-global-typography-accent-font-family: 'Content', 'Khmer OS Content', 'Kantumruy Pro', 'Khmer OS Battambang', 'Khmer OS', 'Leelawadee UI', 'Khmer UI', sans-serif !important;
  --e-global-typography-392b9e0-font-family: 'Content', 'Khmer OS Content', 'Kantumruy Pro', 'Khmer OS Battambang', 'Khmer OS', 'Leelawadee UI', 'Khmer UI', sans-serif !important;
  --e-global-typography-c05b693-font-family: 'Content', 'Khmer OS Content', 'Kantumruy Pro', 'Khmer OS Battambang', 'Khmer OS', 'Leelawadee UI', 'Khmer UI', sans-serif !important;
  --e-global-typography-6558fb1-font-family: 'Content', 'Khmer OS Content', 'Kantumruy Pro', 'Khmer OS Battambang', 'Khmer OS', 'Leelawadee UI', 'Khmer UI', sans-serif !important;
  --e-global-typography-92bce3b-font-family: 'Content', 'Khmer OS Content', 'Kantumruy Pro', 'Khmer OS Battambang', 'Khmer OS', 'Leelawadee UI', 'Khmer UI', sans-serif !important;
  --e-global-typography-b2deeae-font-family: 'Content', 'Khmer OS Content', 'Kantumruy Pro', 'Khmer OS Battambang', 'Khmer OS', 'Leelawadee UI', 'Khmer UI', sans-serif !important;
  --e-global-typography-fb1a3e0-font-family: 'Content', 'Khmer OS Content', 'Kantumruy Pro', 'Khmer OS Battambang', 'Khmer OS', 'Leelawadee UI', 'Khmer UI', sans-serif !important;
  --e-global-typography-397e168-font-family: 'Content', 'Khmer OS Content', 'Kantumruy Pro', 'Khmer OS Battambang', 'Khmer OS', 'Leelawadee UI', 'Khmer UI', sans-serif !important;
}

/* 2. Khmer Navigation, Header & Menus (Microsoft Edge & Chrome Compatibility) */
html[lang^="km"] .ppbs-navbar,
html[lang^="km"] .ppbs-nav,
html[lang^="km"] .ppbs-nav *,
html[lang^="km"] .ppbs-nav ul,
html[lang^="km"] .ppbs-nav ul li,
html[lang^="km"] .ppbs-nav ul li a,
html[lang^="km"] .ppbs-nav ul li ul.sub-menu,
html[lang^="km"] .ppbs-nav ul li ul.sub-menu li,
html[lang^="km"] .ppbs-nav ul li ul.sub-menu li a,
html[lang^="km"] #primary-menu,
html[lang^="km"] #primary-menu li,
html[lang^="km"] #primary-menu li a,
html[lang^="km"] .ppbs-header-actions,
html[lang^="km"] .ppbs-donate-btn,
html[lang^="km"] .ppbs-mobile-nav-cta,
html[lang^="km"] .ppbs-mobile-nav-cta a,
html[lang^="km"] .ppbs-mobile-nav-cta .ppbs-btn,
html[lang^="km"] .ppbs-topbar,
html[lang^="km"] .ppbs-topbar *,
html[lang^="km"] .ppbs-footer,
html[lang^="km"] .ppbs-footer *,
html[lang^="km"] .ppbs-footer-widget h4,
html[lang^="km"] .ppbs-footer-widget p,
html[lang^="km"] .ppbs-footer-links a,
html[lang^="km"] .ppbs-footer-bottom,
html[lang^="km"] .ppbs-footer-bottom * {
  font-family: 'Content', 'Khmer OS Content', 'Kantumruy Pro', sans-serif !important;
  text-transform: none !important;
  letter-spacing: 0px !important;
  word-spacing: normal !important;
  text-rendering: optimizeLegibility !important;
  -webkit-font-smoothing: antialiased !important;
}

html[lang^="km"] .ppbs-nav ul li a,
html[lang^="km"] #primary-menu>li>a {
  font-family: 'Content', 'Khmer OS Content', sans-serif !important;
  font-size: 0.96rem !important;
  font-weight: 700 !important;
  letter-spacing: 0px !important;
  text-transform: none !important;
  line-height: 1.55 !important;
  padding: 0.75rem 1.05rem !important;
}

html[lang^="km"] .ppbs-nav ul li ul.sub-menu li a,
html[lang^="km"] #primary-menu .sub-menu li a {
  font-family: 'Content', 'Khmer OS Content', sans-serif !important;
  font-size: 0.90rem !important;
  font-weight: 700 !important;
  letter-spacing: 0px !important;
  text-transform: none !important;
  line-height: 1.65 !important;
  padding: 0.75rem 1.15rem !important;
}

html[lang^="km"] .ppbs-donate-btn {
  font-family: 'Content', 'Khmer OS Content', sans-serif !important;
  font-size: 0.92rem !important;
  font-weight: 700 !important;
  letter-spacing: 0px !important;
  text-transform: none !important;
  line-height: 1.4 !important;
}

@media (max-width: 860px) {

  html[lang^="km"] .ppbs-nav ul li a,
  html[lang^="km"] #primary-menu li a {
    font-family: 'Content', 'Khmer OS Content', sans-serif !important;
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    letter-spacing: 0px !important;
    text-transform: none !important;
    line-height: 1.6 !important;
  }
}

/* 3. Direct Widget Overrides for Elementor Content Pages in Khmer */
html[lang^="km"] .elementor,
html[lang^="km"] .elementor *,
html[lang^="km"] .elementor-widget,
html[lang^="km"] .elementor-widget *,
html[lang^="km"] .elementor-widget-heading .elementor-heading-title,
html[lang^="km"] .elementor-widget-text-editor,
html[lang^="km"] .elementor-widget-text-editor *,
html[lang^="km"] .elementor-widget-image-box .elementor-image-box-title,
html[lang^="km"] .elementor-widget-image-box .elementor-image-box-description,
html[lang^="km"] .elementor-widget-icon-box .elementor-icon-box-title,
html[lang^="km"] .elementor-widget-icon-box .elementor-icon-box-description,
html[lang^="km"] .elementor-widget-testimonial .elementor-testimonial-content,
html[lang^="km"] .elementor-widget-testimonial .elementor-testimonial-name,
html[lang^="km"] .elementor-widget-testimonial .elementor-testimonial-job,
html[lang^="km"] .elementor-button,
html[lang^="km"] .elementor-button *,
html[lang^="km"] .elementor-tab-title,
html[lang^="km"] .elementor-tab-content,
html[lang^="km"] .elementor-accordion-title,
html[lang^="km"] .elementor-accordion-content,
html[lang^="km"] .ppbs-page-wrapper,
html[lang^="km"] .ppbs-page-wrapper *,
html[lang^="km"] .ppbs-page-title,
html[lang^="km"] .ppbs-page-body,
html[lang^="km"] .ppbs-page-body *,
html[lang^="km"] .ppbs-main-content,
html[lang^="km"] .ppbs-main-content *,
html[lang^="km"] .site-main,
html[lang^="km"] .site-main * {
  font-family: 'Content', 'Khmer OS Content', 'Kantumruy Pro', 'Khmer OS Battambang', 'Khmer OS', 'Leelawadee UI', 'Khmer UI', sans-serif !important;
  letter-spacing: normal !important;
  word-spacing: normal !important;
  text-transform: none !important;
  text-rendering: optimizeLegibility !important;
  -webkit-font-smoothing: antialiased !important;
}

/* 3. Text Paragraphs & Headings Spacing in Khmer (prevents Edge clipping of top/bottom diacritics) */
html[lang^="km"] .elementor-widget-text-editor,
html[lang^="km"] .elementor-widget-text-editor p,
html[lang^="km"] .elementor-widget-text-editor span,
html[lang^="km"] .ppbs-page-body p,
html[lang^="km"] .ppbs-page-body span,
html[lang^="km"] .ppbs-page-body li {
  line-height: 1.85 !important;
  font-size: 1.05rem !important;
}

html[lang^="km"] .elementor-heading-title,
html[lang^="km"] .ppbs-page-title,
html[lang^="km"] h1,
html[lang^="km"] h2,
html[lang^="km"] h3,
html[lang^="km"] h4,
html[lang^="km"] h5,
html[lang^="km"] h6 {
  line-height: 1.5 !important;
  letter-spacing: normal !important;
}

/* 4. Preserve Symbol, Icon & Wingdings Fonts (Prevents Content font from overriding bullets/icons) */
html[lang^="km"] [style*="Wingdings" i],
html[lang^="km"] [style*="wingdings" i],
html[lang^="km"] span[style*="Wingdings" i],
html[lang^="km"] span[style*="wingdings" i],
[style*="Wingdings" i],
[style*="wingdings" i] {
  font-family: 'Wingdings', Wingdings !important;
}

html[lang^="km"] [style*="Symbol" i],
html[lang^="km"] [style*="symbol" i],
html[lang^="km"] span[style*="Symbol" i],
html[lang^="km"] span[style*="symbol" i],
[style*="Symbol" i],
[style*="symbol" i] {
  font-family: 'Symbol', Symbol !important;
}

html[lang^="km"] [style*="Webdings" i],
html[lang^="km"] [style*="webdings" i],
html[lang^="km"] span[style*="Webdings" i],
html[lang^="km"] span[style*="webdings" i],
html[lang^="km"] .fa,
html[lang^="km"] [class*="fa-"],
html[lang^="km"] [class*="eicon-"],
[style*="Webdings" i],
[style*="webdings" i] {
  font-family: Webdings, 'Font Awesome 5 Free', 'Font Awesome 5 Brands', 'FontAwesome', eicons, sans-serif !important;
}

/* 4. Preserve Header Branding Fonts */
html[lang^="km"] .ppbs-school-brand__name,
.ppbs-school-brand__name {
  font-family: 'Times New Roman', Times, 'Tinos', 'Liberation Serif', serif !important;
}

html[lang^="km"] .ppbs-school-brand__khmer,
.ppbs-school-brand__khmer {
  font-family: 'Moul', 'Khmer OS Muol Light', 'Khmer OS Muol', 'Content', serif !important;
}

/* =============================================================
   MOBILE CONTENT & CONTACT CARDS GRID RESPONSIVENESS
   Guarantees contact cards and multi-column widgets stack 100%
   full-width on mobile screens even when edited in Elementor
   ============================================================= */
@media (max-width: 767px) {

  /* Force any grid in text editors / pages to single column */
  .elementor-widget-text-editor div[style*="grid"],
  .elementor-widget-text-editor div[style*="grid-template-columns"],
  .ppbs-page-body div[style*="grid"],
  .ppbs-page-body div[style*="grid-template-columns"],
  .ppbs-contact-cards-grid {
    display: flex !important;
    flex-direction: column !important;
    gap: 16px !important;
    width: 100% !important;
  }

  /* Ensure child cards fill 100% width and don't shrink */
  .elementor-widget-text-editor div[style*="grid"]>div,
  .elementor-widget-text-editor div[style*="grid-template-columns"]>div,
  .ppbs-page-body div[style*="grid"]>div,
  .ppbs-page-body div[style*="grid-template-columns"]>div,
  .ppbs-contact-cards-grid>div {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 100% !important;
    box-sizing: border-box !important;
  }
}