/* =========================================================
   Site type + spacing lock
   Only 3 text sizes: large / medium / small
   One font: Manrope
   ========================================================= */
:root {
  --font-main: "Manrope", system-ui, sans-serif;
  --bs-font-sans-serif: "Manrope", system-ui, sans-serif;
  --bs-body-font-family: "Manrope", system-ui, sans-serif;
  --display-font: "Manrope", system-ui, sans-serif;

  --type-lg: 1.625rem;   /* 26px — titles */
  --type-md: 0.9375rem;  /* 15px — body, buttons, nav, cards */
  --type-sm: 0.8125rem;  /* 13px — meta, badges, footer */

  --lh-title: 1.3;
  --lh-body: 1.6;

  --space-xs: 8px;
  --space-sm: 12px;
  --space-md: 16px;
  --space-lg: 24px;
}

html,
body,
button,
input,
select,
textarea,
p,
li,
label,
td,
th,
a,
span,
b,
strong,
em,
small,
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: "Manrope", system-ui, sans-serif !important;
}

html {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

body {
  font-size: var(--type-md) !important;
  line-height: var(--lh-body) !important;
  font-weight: 400 !important;
  letter-spacing: -0.01em;
}

/* ---- LARGE: page / section titles ---- */
h1, .h1,
.hero-title,
.iq-title,
.cc-hero h1,
.site-hero h1,
.si-hero h1,
.cl-hero h1,
.pg-hero h1,
.iq-article h1,
.iq-detail .iq-article h1,
.nk-head-card h1,
.cd-title-row h1,
.job-layout h1,
body.home-fullhero .cc-hero h1,
.cc-path-stats dt,
.stats-number {
  font-size: var(--type-lg) !important;
  font-weight: 700 !important;
  line-height: var(--lh-title) !important;
  letter-spacing: -0.02em !important;
}

body.home-fullhero .cc-hero h1 {
  color: #fff !important;
}
body.home-fullhero .cc-hero h1 span {
  color: #fb923c !important;
}

/* ---- MEDIUM: body, subheads, buttons, nav, cards ---- */
h2, .h2,
h3, .h3,
h4, .h4,
p, li, label, td, th, .lead,
.btn, a.btn, button, .btn-primary-custom, .btn-navy, .btn-ghost,
.navbar-nav .nav-link,
.nav-cta-btn,
.iq-lab-head h3,
.iq-lab-title h3,
.iq-why-card b,
.iq-step-list b,
.iq-ex-label, .iq-ex-label b, .iq-ex-box,
.iq-tok, .iq-id,
.iqd-box h2,
.iqd-rel a b,
.iqd-track-hero b,
.loop-cta h2,
.course-card h3, .course-card b,
.mega-card b,
.job-card h3, .job-listing h3,
.cd-mod h3,
footer h3, footer h5,
.iq-detail .iqd-copy {
  font-size: var(--type-md) !important;
  line-height: var(--lh-body) !important;
}

p, li, .lead, .loop-cta p, .iq-lab-simple p, .iq-lab-take p, .iq-why-card p, .iq-step-list p {
  font-weight: 400 !important;
  color: var(--text-light);
}
body.home-fullhero .cc-hero p,
body.home-fullhero .cc-hero li {
  color: rgba(255, 255, 255, 0.92) !important;
}

h2, .h2, h3, .h3, h4, .h4,
.iq-lab-head h3, .loop-cta h2, .iqd-box h2 {
  font-weight: 700 !important;
  color: var(--blue) !important;
  line-height: var(--lh-title) !important;
}

.btn, a.btn, button.btn,
.btn-primary-custom, .btn-navy, .btn-ghost {
  font-weight: 600 !important;
  letter-spacing: 0 !important;
}

/* ---- SMALL: meta, captions, badges, footer, kickers ---- */
h5, .h5, h6, .h6,
small, .small, .text-muted,
.cd-kicker, .iqd-kicker, .mega-kicker, .section-eyebrow,
.cc-hero-eyebrow, .iqd-meta, .iqd-count, .iqd-rel-meta,
.topic-badge, .level-pill,
.iq-lab-sub, .iq-ex-note, .iq-viz-note,
.crumb, .crumb a, .crumb span,
footer p, footer li, footer a, footer small,
.cd-duration, .iq-teach-more,
.whatsapp-float {
  font-size: var(--type-sm) !important;
  line-height: 1.45 !important;
  letter-spacing: 0 !important;
}

/* Icons stay Font Awesome — never inherit Manrope */
i[class*="fa-"],
.fa, .fas, .far, .fab,
.fa-solid, .fa-regular, .fa-brands {
  font-size: inherit;
}
i[class*="fa-"], .fa, .fas, .far, .fa-solid, .fa-regular {
  font-family: "Font Awesome 6 Free" !important;
  font-style: normal !important;
}
i.fa-brands, .fab {
  font-family: "Font Awesome 6 Brands" !important;
  font-weight: 400 !important;
}
.fa-solid, .fas { font-weight: 900 !important; }
.fa-regular, .far { font-weight: 400 !important; }

/* ---- Clean spacing ---- */
h1, h2, h3, h4 {
  margin-top: 0 !important;
  margin-bottom: var(--space-sm) !important;
}
p { margin: 0 0 var(--space-sm) !important; }
p:last-child { margin-bottom: 0 !important; }

.iq-detail .iq-article { padding: 20px !important; }
.iq-lab-card,
.iqd-box,
.iqd-track,
.loop-cta {
  padding: 20px !important;
}

.iq-teach { gap: var(--space-md) !important; }
.iqd-grid { gap: var(--space-lg) !important; }
.iq-lab-head { margin-bottom: var(--space-md) !important; }

.container.py-4 {
  padding-top: 32px !important;
  padding-bottom: 32px !important;
}
.container.py-5 {
  padding-top: 40px !important;
  padding-bottom: 40px !important;
}

@media (max-width: 767.98px) {
  :root { --type-lg: 1.375rem; }
}
