/* --------------------------------------------------------------------------
   1. Base Body Typography
   -------------------------------------------------------------------------- */
body {
  font-family: var(--font-primary);
  font-size: 18px;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: normal;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

/* --------------------------------------------------------------------------
   2. Heading Defaults (h1–h6)
   -------------------------------------------------------------------------- */
h1,
h2,
h3,
h4,
h5,
h6,
.font-serif {
  font-family: var(--font-primary);
  font-weight: 800;
  letter-spacing: normal;
}

/* --------------------------------------------------------------------------
   3. Links
   -------------------------------------------------------------------------- */
a {
  color: inherit;
  text-decoration: none;
}

/* --------------------------------------------------------------------------
   4. Universal Single-Font Policy
   -------------------------------------------------------------------------- */
body,
p,
span:not([class*="bi"]),
li,
a:not([class*="bi"]),
td,
th,
label,
input,
textarea,
select,
button,
h1,
h2,
h3,
h4,
h5,
h6,
.font-serif,
.hero-title,
.about-main-title,
.courses-editorial-title,
.why-title,
.pl-heading,
.footer-heading,
.modal-title,
.card-title,
.why-card-title,
.strength-title,
.pl-card-title,
.trust-metric-title,
.res-hero-title,
.blog-hero-title,
.premium-section-title,
.res-section-title,
.res-section-subtitle,
.res-section-label,
.res-hero-label,
.editorial-label,
.pl-stat-label,
.pl-partners-label,
.info-label,
.nav-tab-label,
.blog-category,
.res-cta-title {
  font-family: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif !important;
  letter-spacing: normal !important;
}

/* --------------------------------------------------------------------------
   5. Typography Scale — Desktop
   -------------------------------------------------------------------------- */

/* Hero Heading: 52px, ExtraBold 800, Line-height 1.15 */
h1,
.hero-title,
.res-hero-title,
.blog-hero-title,
.hero-section h1 {
  font-size: 52px !important;
  font-weight: 800 !important;
  line-height: 1.15 !important;
}

/* Section Heading: 52px, ExtraBold 800, Line-height 1.2 */
h2,
.why-title,
.pl-heading,
.section-title,
.premium-section-title,
.res-section-title,
.res-cta-title,
.testimonial-section h2,
.gallery-section h2,
.admissions-section h2,
.faq-section h2,
.cta-section h2,
.contact-section h2 {
  font-size: 52px !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
}

/* Reduced size for courses editorial title */
.courses-editorial-title {
  font-size: 42px !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
}

/* Sub Heading: 22px, Bold 700 */
h3:not(.card-title):not(.why-card-title):not(.strength-title):not(.pl-card-title):not(.course-card h3):not(.testimonial-card h3):not(.gallery-item h3):not(.faq-item h3):not(.admission-card h3),
.about-section h3:not(.strength-title):not(.card-title),
.courses-section h3:not(.card-title),
.pl-section h3:not(.pl-card-title),
.section-subtitle,
.res-section-subtitle,
.courses-editorial-intro,
.trust-metric-title,
.stat-value,
.pl-stat h3 {
  font-size: 22px !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
}

/* Card Title: 20px, Bold 700 */
.card-title,
.why-card-title,
.strength-title,
.pl-card-title,
.why-feature-card h3,
.course-card h3,
.testimonial-card h3,
.testimonial-card h4,
.gallery-item h3,
.faq-item h3,
.admission-card h3,
.card h3,
.card h4,
.modal-title,
.contact-card h3 {
  font-size: 20px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
}

/* Body Text: 16px, Regular 400, Line-height 1.8 */
p,
li,
.about-lead-text,
.hero-paragraph,
.why-description,
.courses-editorial-intro,
.pl-subtext,
.lead,
.body-paragraph,
.testimonial-card p,
.faq-answer p,
.cta-subtext,
.form-control,
input,
textarea,
select {
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.8 !important;
}

/* Small Body / Card Description: 17px, Regular 400 */
.small,
small,
.extra-small,
.card-text,
.why-card-text,
.strength-desc,
.pl-card-desc,
.card-desc,
.card-meta,
.copyright-text,
.form-text,
.gallery-caption,
.testimonial-author {
  font-size: 17px !important;
  font-weight: 400 !important;
  line-height: 1.7 !important;
}

/* Top Bar Text: 14px */
.top-header-bar {
  font-size: 14px !important;
  font-weight: 500 !important;
}

/* Labels / Eyebrows: 13px, SemiBold 600, Letter-spacing 1px */
.eyebrow,
.about-eyebrow,
.why-header-label,
.why-callout-eyebrow,
.courses-header-label,
.res-section-label,
.res-hero-label,
.editorial-label,
.pl-stat-label,
.pl-partners-label,
.info-label,
.nav-tab-label,
.blog-category,
.pl-eyebrow,
.pl-eyebrow-text,
.hero-badge-label,
.badge-label,
.trust-label,
.card-category-label,
.form-label-luxury,
.why-us-eyebrow,
.section-eyebrow,
.subheading,
.tag,
.trust-metric-label,
label,
.form-label {
  font-family: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif !important;
  font-size: 17px !important;
  font-weight: 600 !important;
  letter-spacing: 1px !important;
  text-transform: uppercase;
}

/* Navigation: 16px, SemiBold 600 */
.navbar-nav .nav-link,
.mobile-nav-item,
.mobile-submenu-item,
.nav-menu a,
.desktop-nav-menu .nav-link {
  font-family: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  letter-spacing: normal !important;
}

/* Buttons: 16px, Bold 700 */
button,
input[type="submit"],
input[type="button"],
.btn,
.btn-header-admission,
.btn-consultation,
.btn-mobile-consultation,
.btn-hero-primary,
.btn-hero-secondary,
.btn-gold-pill,
.btn-dark-pill,
.btn-gold-lg,
.pl-cta,
.courses-view-all-cta,
.btn-cta {
  font-family: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  letter-spacing: normal !important;
}

/* --------------------------------------------------------------------------
   8. Footer Typography
   -------------------------------------------------------------------------- */
.footer-heading {
  font-size: 18px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
}

.footer-brand-desc,
.footer-links a,
.footer-contact-item,
.footer-contact-item a,
.footer-bottom-strip,
.footer-bottom-strip a {
  font-size: 15px !important;
  font-weight: 400 !important;
  line-height: 1.7 !important;
}

.footer-contact-item i {
  font-size: 16px !important;
}

/* Override nav tab label size */
.nav-tab-label {
  font-size: 13px !important;
}