/* ==========================================================================
   SITE-WIDE TYPE SCALE (Oct 2026)
   One size per kind of text, so every page reads the same. Sizes scale
   smoothly between phone and desktop (clamp), so nothing is too big on a
   laptop or too small on a phone.

     Page title (hero H1) ........ 32px phone  → 52px desktop   weight 700
     Section heading (H2) ........ 26px        → 40px           weight 700
     Sub-section heading ......... 20px        → 24px           weight 800
     Card heading ................ 17px        → 19px           weight 800
     Intro line under page title . 17px        → 18px
     Body text ................... 16px  (long-form: articles, legal, intros)
     Card / supporting text ...... 15px  (cards, FAQs, tables, bios)
     Captions .................... 14px      Small print / disclaimers ... 13px
     Eyebrow labels .............. 13px      Buttons ...................... 14px bold

   Left alone on purpose: the homepage hero (sized to fit one screen),
   the research-funnel diagram, stat numbers, decorative numerals, the
   "The Nexus Journal" wordmark, the 404 graphic and the About Us leader
   switcher name.

   "html:not(#nx-type)" only raises priority so these win over the page
   stylesheets whatever order they load in. To undo everything, delete this
   file's <link> in component/meta.php.
   ========================================================================== */

/* ---------- Page title (hero H1 on every inner page) ---------- */
html:not(#nx-type) .nxa-hero-title,
html:not(#nx-type) .nxc-hero-title,
html:not(#nx-type) .nxf-hero-title,
html:not(#nx-type) .nxg-hero-title,
html:not(#nx-type) .nxk-hero-title,
html:not(#nx-type) .nxo-hero-title,
html:not(#nx-type) .nxp-hero-title,
html:not(#nx-type) .nxr-hero-title,
html:not(#nx-type) .nxw-hero-title,
html:not(#nx-type) .image-box > h1 {
  font-size: clamp(2rem, 1.25rem + 2.6vw, 3.25rem) !important;
  font-weight: 800 !important;
}
html:not(#nx-type) .nxa-hero-title *,
html:not(#nx-type) .nxc-hero-title *,
html:not(#nx-type) .nxf-hero-title *,
html:not(#nx-type) .nxk-hero-title *,
html:not(#nx-type) .nxo-hero-title *,
html:not(#nx-type) .nxp-hero-title *,
html:not(#nx-type) .nxr-hero-title *,
html:not(#nx-type) .nxw-hero-title * { font-size: inherit !important; }

/* ---------- Section heading (H2) ---------- */
html:not(#nx-type) .boxed_wrapper .nx-sec-title,
html:not(#nx-type) .nxa-begin-title,
html:not(#nx-type) .nxj-h2,
html:not(#nx-type) .sec-title > h2,
html:not(#nx-type) .nxc-h2,
html:not(#nx-type) .nxr-close-title,
html:not(#nx-type) .nxf-close-title,
html:not(#nx-type) .nxf-sentence-title,
html:not(#nx-type) .content-box > h2,
html:not(#nx-type) .page-wrap > h1.text-center {
  font-size: clamp(1.625rem, 1.1rem + 1.6vw, 2.5rem) !important;
  font-weight: 800 !important;
}

/* ---------- Sub-section heading ---------- */
html:not(#nx-type) .content-two > h3,
html:not(#nx-type) .page-wrap-is > h3,
html:not(#nx-type) .nexus-mission-card > h3,
html:not(#nx-type) h3.mission-title,
html:not(#nx-type) .nxp-pan > h3,
html:not(#nx-type) .nxp-tile:not(.nxp-tile-a) > h3,
html:not(#nx-type) .nxa-team-head > h3,
html:not(#nx-type) .nxa-stratum > h3,
html:not(#nx-type) .nx-form-header > h2 {
  font-size: clamp(1.25rem, 1.1rem + .5vw, 1.5rem) !important;
  font-weight: 800 !important;
}

/* ---------- Card heading ---------- */
html:not(#nx-type) .single-item > h3,
html:not(#nx-type) .table-header > h3,
html:not(#nx-type) .nx-leader-card-body > h3,
html:not(#nx-type) .nxr-doc-body > h3,
html:not(#nx-type) .nxw-slide > h3,
html:not(#nx-type) .nxa-horizon-card > h3,
html:not(#nx-type) h3.nexus-card-title,
html:not(#nx-type) .nxc-answer > h3,
html:not(#nx-type) .nxo-facts h3,
html:not(#nx-type) .nxf-pillars h3,
html:not(#nx-type) .nx-principles-list h3,
html:not(#nx-type) .nx-intro-principles h3,
html:not(#nx-type) .nxp-sign > h3,
html:not(#nx-type) .nxa-film-info > h4,
html:not(#nx-type) .content-two > h5,
html:not(#nx-type) .nx-faq-desk-card > h5 {
  font-size: clamp(1.0625rem, 1rem + .25vw, 1.1875rem) !important;
  font-weight: 800 !important;
}

/* ---------- Intro line under the page title ---------- */
html:not(#nx-type) .nxa-hero-lead,
html:not(#nx-type) .nxc-hero-lead,
html:not(#nx-type) .nxf-hero-lead,
html:not(#nx-type) .nxk-hero-lead,
html:not(#nx-type) .nxo-hero-lead,
html:not(#nx-type) .nxp-hero-lead,
html:not(#nx-type) .nxr-hero-lead,
html:not(#nx-type) .nxw-hero-lead,
html:not(#nx-type) .nx-research-footnote,
html:not(#nx-type) .nx-metrics-heading > p {
  font-size: clamp(1.0625rem, 1rem + .25vw, 1.125rem) !important;
}

/* ---------- Card / supporting text (was 14px in places) → 15px ---------- */
html:not(#nx-type) .nx-tl-strategy-item > p,
html:not(#nx-type) .nx-principles-list p,
html:not(#nx-type) .nxp-tile > p,
html:not(#nx-type) .nxp-sign > p,
html:not(#nx-type) .nxf-pillars li > p,
html:not(#nx-type) .nxf-annot-notes > li,
html:not(#nx-type) .nxa-chapter-note,
html:not(#nx-type) .pill-content > p,
html:not(#nx-type) .nx-blog-body > p,
html:not(#nx-type) .nx-faq-body > p,
html:not(#nx-type) .nx-faq-desk-card > p,
html:not(#nx-type) .nx-lens-list > li > p,
html:not(#nx-type) .sidebar-content-right > p,
html:not(#nx-type) .nxw-table td,
html:not(#nx-type) .nxw-table td li {
  font-size: 15px !important;
}

/* ---------- Captions (was 13px) → 14px ---------- */
html:not(#nx-type) .nx-num-desc,
html:not(#nx-type) .nx-intro-principles p,
html:not(#nx-type) .nxa-film-info > p,
html:not(#nx-type) .nx-form-consent {
  font-size: 14px !important;
}

/* ---------- Small print / disclaimers (was 12px) → 13px ---------- */
html:not(#nx-type) .nxa-begin-note,
html:not(#nx-type) .nxk-note,
html:not(#nx-type) .nxj-disclaimer,
html:not(#nx-type) .nxo-close-note {
  font-size: 13px !important;
}

/* ---------- Eyebrow labels & buttons ---------- */
html:not(#nx-type) .nx-eyebrow { font-size: 13px !important; }
html:not(#nx-type) .nx-btn-primary,
html:not(#nx-type) .nx-btn-secondary,
html:not(#nx-type) .nx-btn-outline,
html:not(#nx-type) .nxa-btn-ghost,
html:not(#nx-type) .theme-btn {
  font-size: 14px !important;
  font-weight: 700 !important;
}

/* ---------- Heading weight (Oct 2026): page titles, section headings and the
   title-style links all use 700 – one step lighter than before, and the same
   everywhere, including every word of each line. ---------- */
html:not(#nx-type) .nx-hero-title, html:not(#nx-type) .nx-hero-title *,
html:not(#nx-type) .nxa-hero-title, html:not(#nx-type) .nxa-hero-title *,
html:not(#nx-type) .nxc-hero-title, html:not(#nx-type) .nxc-hero-title *,
html:not(#nx-type) .nxf-hero-title, html:not(#nx-type) .nxf-hero-title *,
html:not(#nx-type) .nxg-hero-title, html:not(#nx-type) .nxg-hero-title *,
html:not(#nx-type) .nxk-hero-title, html:not(#nx-type) .nxk-hero-title *,
html:not(#nx-type) .nxo-hero-title, html:not(#nx-type) .nxo-hero-title *,
html:not(#nx-type) .nxp-hero-title, html:not(#nx-type) .nxp-hero-title *,
html:not(#nx-type) .nxr-hero-title, html:not(#nx-type) .nxr-hero-title *,
html:not(#nx-type) .nxw-hero-title, html:not(#nx-type) .nxw-hero-title *,
html:not(#nx-type) .image-box > h1,
html:not(#nx-type) .boxed_wrapper .nx-sec-title, html:not(#nx-type) .boxed_wrapper .nx-sec-title *,
html:not(#nx-type) .nxa-begin-title, html:not(#nx-type) .nxa-begin-title *,
html:not(#nx-type) .nxj-h2,
html:not(#nx-type) .sec-title > h2,
html:not(#nx-type) .nxc-h2, html:not(#nx-type) .nxc-h2 *,
html:not(#nx-type) .nxr-close-title, html:not(#nx-type) .nxr-close-title *,
html:not(#nx-type) .nxf-close-title, html:not(#nx-type) .nxf-close-title *,
html:not(#nx-type) .nxf-sentence-title, html:not(#nx-type) .nxf-sentence-title *,
html:not(#nx-type) .content-box > h2,
html:not(#nx-type) .page-wrap > h1.text-center,
html:not(#nx-type) .nxp-book-title, html:not(#nx-type) .nxp-book-title *,
html:not(#nx-type) .nxr-chapter > strong,
html:not(#nx-type) .nxw-next-card > strong,
html:not(#nx-type) .nxj-lead-title, html:not(#nx-type) .nxj-lead-title *,
html:not(#nx-type) .nxj-wordmark, html:not(#nx-type) .nxj-wordmark * {
  font-weight: 700 !important;
}

/* "Schedule a Call" contact-form heading (all pages) – weight 700 (was 600, too light); its
   drawing animation on the homepage was removed in index.php. */
html:not(#nx-type) .nx-form-header > h2 {
  font-weight: 700 !important;
  font-size: clamp(1.375rem, 1.2rem + .6vw, 1.75rem) !important; /* 22px phone → 28px desktop (was 20 → 24) */
}

/* ==========================================================================
   ABOUT US HERO + HERO BUTTONS (Oct 2026)
   ========================================================================== */

/* About Us hero title and intro use exactly the homepage hero sizes; the
   "Our Team" heading uses the same size as the hero title
   (same steps as hero-slider.css): 56px → 52px on shorter laptop screens
   → 48px → 40px → 32px on phones; intro paragraph is 16.5px at every width, the same as the section
   intro paragraphs on both pages (Oct 2026). */
html:not(#nx-type) #about-hero .nxa-hero-title,
html:not(#nx-type) #aif-hero .nxo-hero-title,
html:not(#nx-type) #library-hero .nxk-hero-title,
html:not(#nx-type) #journal-hero .nxj-wordmark,
html:not(#nx-type) #lead-story .nxj-lead-title,
html:not(#nx-type) #all-essays .nxj-h2,
html:not(#nx-type) #contact-hero .nxc-hero-title,
html:not(#nx-type) #start-here .nxk-path-head .nx-sec-title,
html:not(#nx-type) #guides .nx-sec-title,
html:not(#nx-type) #perspectives .nx-sec-title,
html:not(#nx-type) #perspectives .nxk-feature strong,
  html:not(#nx-type) #people .nxa-team-head > h3 { font-size: 56px !important; }
html:not(#nx-type) #library-hero .nxk-hero-lead,
html:not(#nx-type) #aif-hero .nxo-hero-lead,
html:not(#nx-type) #about-hero .nxa-hero-lead  { font-size: 16.5px !important; }
@media (min-width: 992px) and (max-height: 980px) {
  html:not(#nx-type) #about-hero .nxa-hero-title,
html:not(#nx-type) #aif-hero .nxo-hero-title,
html:not(#nx-type) #library-hero .nxk-hero-title,
html:not(#nx-type) #journal-hero .nxj-wordmark,
html:not(#nx-type) #lead-story .nxj-lead-title,
html:not(#nx-type) #all-essays .nxj-h2,
html:not(#nx-type) #contact-hero .nxc-hero-title,
html:not(#nx-type) #start-here .nxk-path-head .nx-sec-title,
html:not(#nx-type) #guides .nx-sec-title,
html:not(#nx-type) #perspectives .nx-sec-title,
html:not(#nx-type) #perspectives .nxk-feature strong,
  html:not(#nx-type) #people .nxa-team-head > h3 { font-size: min(52px, 5.6vh) !important; }
  html:not(#nx-type) #library-hero .nxk-hero-lead,
  html:not(#nx-type) #aif-hero .nxo-hero-lead,
  html:not(#nx-type) #about-hero .nxa-hero-lead  { font-size: 16.5px !important; }
}
@media (max-width: 1399px) {
  html:not(#nx-type) #about-hero .nxa-hero-title,
html:not(#nx-type) #aif-hero .nxo-hero-title,
html:not(#nx-type) #library-hero .nxk-hero-title,
html:not(#nx-type) #journal-hero .nxj-wordmark,
html:not(#nx-type) #lead-story .nxj-lead-title,
html:not(#nx-type) #all-essays .nxj-h2,
html:not(#nx-type) #contact-hero .nxc-hero-title,
html:not(#nx-type) #start-here .nxk-path-head .nx-sec-title,
html:not(#nx-type) #guides .nx-sec-title,
html:not(#nx-type) #perspectives .nx-sec-title,
html:not(#nx-type) #perspectives .nxk-feature strong,
  html:not(#nx-type) #people .nxa-team-head > h3 { font-size: 48px !important; }
  html:not(#nx-type) #library-hero .nxk-hero-lead,
  html:not(#nx-type) #aif-hero .nxo-hero-lead,
  html:not(#nx-type) #about-hero .nxa-hero-lead  { font-size: 16.5px !important; }
}
@media (max-width: 1199px) {
  html:not(#nx-type) #about-hero .nxa-hero-title,
html:not(#nx-type) #aif-hero .nxo-hero-title,
html:not(#nx-type) #library-hero .nxk-hero-title,
html:not(#nx-type) #journal-hero .nxj-wordmark,
html:not(#nx-type) #lead-story .nxj-lead-title,
html:not(#nx-type) #all-essays .nxj-h2,
html:not(#nx-type) #contact-hero .nxc-hero-title,
html:not(#nx-type) #start-here .nxk-path-head .nx-sec-title,
html:not(#nx-type) #guides .nx-sec-title,
html:not(#nx-type) #perspectives .nx-sec-title,
html:not(#nx-type) #perspectives .nxk-feature strong,
  html:not(#nx-type) #people .nxa-team-head > h3 { font-size: 40px !important; }
  html:not(#nx-type) #library-hero .nxk-hero-lead,
  html:not(#nx-type) #aif-hero .nxo-hero-lead,
  html:not(#nx-type) #about-hero .nxa-hero-lead  { font-size: 16.5px !important; }
}
@media (max-width: 575px) {
  html:not(#nx-type) #about-hero .nxa-hero-title,
html:not(#nx-type) #aif-hero .nxo-hero-title,
html:not(#nx-type) #library-hero .nxk-hero-title,
html:not(#nx-type) #journal-hero .nxj-wordmark,
html:not(#nx-type) #lead-story .nxj-lead-title,
html:not(#nx-type) #all-essays .nxj-h2,
html:not(#nx-type) #contact-hero .nxc-hero-title,
html:not(#nx-type) #start-here .nxk-path-head .nx-sec-title,
html:not(#nx-type) #guides .nx-sec-title,
html:not(#nx-type) #perspectives .nx-sec-title,
html:not(#nx-type) #perspectives .nxk-feature strong,
  html:not(#nx-type) #people .nxa-team-head > h3 { font-size: 32px !important; }
}

/* Hero buttons – homepage ("Explore Our Approach" / "Schedule a Call") and
   About Us ("Discover Nexus" / "Meet the team") share one, smaller size.
   Filled and outlined buttons use the same padding and a 1px border, so all
   four come out exactly the same height. */
@media (min-width: 768px) {
  html:not(#nx-type) .hs-slide .nx-hero-actions .nx-btn-primary,
  html:not(#nx-type) .hs-slide .nx-hero-actions .nx-btn-outline,
  html:not(#nx-type) #about-hero .nxa-hero-actions .nx-btn-primary,
  html:not(#nx-type) #about-hero .nxa-hero-actions .nxa-btn-ghost {
    font-size: 13px !important;
    line-height: 1.4 !important;
    gap: 8px !important;
    min-height: 0 !important;
    border-radius: 8px !important;
  }
  html:not(#nx-type) .hs-slide .nx-hero-actions .nx-btn-primary,
  html:not(#nx-type) #about-hero .nxa-hero-actions .nx-btn-primary { padding: 11px 22px !important; }
  html:not(#nx-type) .hs-slide .nx-hero-actions .nx-btn-outline,
  html:not(#nx-type) #about-hero .nxa-hero-actions .nxa-btn-ghost {
    padding: 11px 22px !important;
    border-width: 1px !important;
    border-style: solid !important;
  }
  html:not(#nx-type) #about-hero .nxa-hero-actions { gap: 20px; }
}
/* Phones: About Us buttons match the homepage's phone buttons */
@media (max-width: 767px) {
  html:not(#nx-type) #about-hero .nxa-hero-actions { gap: 12px; }
  html:not(#nx-type) #about-hero .nxa-hero-actions a {
    font-size: 13px !important;
    padding: 10px 18px !important;
    min-height: 40px;
    border-radius: 8px !important;
  }
}

/* About Us "Who We Are" opening statement – slightly smaller
   (was 21.6px → 32px, now 20px → 28px). */
html:not(#nx-type) .nxa-lit-text { font-size: clamp(1.25rem, 1.8vw, 1.75rem) !important; }

/* About Us "What We Do": the A/B/C list below the intro was removed, so the
   intro block no longer needs space underneath it. */
html:not(#nx-type) .nxa-what-head { margin-bottom: 0; }

/* About Us – centred hero and section intros (Oct 2026) */
html:not(#nx-type) #about-hero .nxa-hero-copy { text-align: center; max-width: 900px; margin: 0 auto; }
html:not(#nx-type) #about-hero .nxa-hero-lead { margin-left: auto; margin-right: auto; text-align: center !important; }
html:not(#nx-type) #about-hero .nxa-hero-actions { justify-content: center; }
html:not(#nx-type) #what-we-do .nxa-what-head,
html:not(#nx-type) #people .nxa-people-head { display: block; text-align: center; }
html:not(#nx-type) #what-we-do .nxa-what-intro { margin-left: auto; margin-right: auto; text-align: center !important; }
html:not(#nx-type) #purpose .nxa-horizon-head { text-align: center; margin-left: auto; margin-right: auto; }
html:not(#nx-type) #why-nexus .nxa-why-head { text-align: center; }

/* About Us – hand-placed line breaks, hero centring, team & closing text (Oct 2026) */
/* Lines marked .nxa-line sit on their own line on desktop; on smaller
   screens they simply wrap as normal text. */
@media (min-width: 992px) {
  html:not(#nx-type) .nxa-line { display: block; white-space: nowrap; }
  html:not(#nx-type) #about-hero .nxa-hero-copy { width: 100%; max-width: 1000px; }
  html:not(#nx-type) #about-hero .nxa-hero-lead { max-width: none; }
  html:not(#nx-type) #what-we-do .nxa-what-intro { max-width: 780px; }
  /* Hero content centred in the visible area under the fixed header
     (header is ~74px tall; padding measured so the block sits mid-way). */
  html:not(#nx-type) #about-hero { padding: 155px 0 105px; }
}
@media (max-width: 991px) {
  html:not(#nx-type) #about-hero { padding: 120px 0 70px; }
}

/* "Our Team" intro – same size as the other paragraphs on this page, one line on desktop */
html:not(#nx-type) .nxa-team-head > p { font-size: 16.5px !important; }
@media (min-width: 1200px) {
  html:not(#nx-type) .nxa-team-head > p { white-space: nowrap; }
}

/* "Begin a Conversation" risk note – same colour as the line above it and a
   little bigger (15px), still smaller than that line (16.5px). */
html:not(#nx-type) .nxa-begin-note {
  color: rgb(176, 192, 208) !important;
  font-size: 15px !important;
  max-width: 820px;
}

/* About Us leader names (Malay Bhow, Kushal Shah, Manthan Jhaveri) –
   smaller than the hero title: 34px desktop → 30px → 26px phones. */
html:not(#nx-type) #people .nxa-leader-info > h3 { font-size: 34px !important; }
@media (max-width: 1199px) { html:not(#nx-type) #people .nxa-leader-info > h3 { font-size: 30px !important; } }
@media (max-width: 575px)  { html:not(#nx-type) #people .nxa-leader-info > h3 { font-size: 26px !important; } }

/* Knowledge Section hero: same type as the About Us hero (sizes above) */
html:not(#nx-type) #library-hero .nxk-hero-title { line-height: 1.04; letter-spacing: -.035em; }
html:not(#nx-type) #library-hero .nxk-hero-lead { line-height: 1.75 !important; }

/* Knowledge Section: section headings and the featured article title use the
   hero title size (rules above); keep their own line spacing tight. */
html:not(#nx-type) #start-here .nxk-path-head .nx-sec-title,
html:not(#nx-type) #guides .nx-sec-title,
html:not(#nx-type) #perspectives .nx-sec-title,
html:not(#nx-type) #perspectives .nxk-feature strong { line-height: 1.1; }

/* Journal + Contact headings take the hero title size (rules above) */
html:not(#nx-type) #journal-hero .nxj-wordmark *,
html:not(#nx-type) #lead-story .nxj-lead-title *,
html:not(#nx-type) #all-essays .nxj-h2 *,
html:not(#nx-type) #contact-hero .nxc-hero-title * { font-size: inherit !important; }
