/* NexGen Public Readability & Contrast Calibration rc263
   Loaded late in the public shell so clarity rules win over legacy theme layers. */
.nxpbRoot{
  --nxpbText:#334155;
  --nxpbMuted:#64748b;
  --nxpbDarkText:#f8fafc;
  --nxpbDarkMuted:#dbe7f4;
  color:var(--nxpbText)!important;
}
.nxpbRoot p,
.nxpbRoot li,
.nxpbRoot .ngh-programme-body p,
.nxpbRoot .ngh-market-body p,
.nxpbRoot .ngh-panel p,
.nxpbRoot .ngh-about-card p{
  font-size:15px!important;
  line-height:1.65!important;
  color:var(--nxpbText)!important;
}
.nxpbRoot small,
.nxpbRoot .ngh-value small,
.nxpbRoot .ngh-quick-card small{
  font-size:12px!important;
  line-height:1.45!important;
  color:var(--nxpbMuted)!important;
}
.nxpbRoot .ngh-eyebrow,
.nxpbRoot [class*="eyebrow"],
.nxpbRoot [class*="kicker"]{
  font-size:11px!important;
  line-height:1.25!important;
  font-weight:900!important;
  letter-spacing:.095em!important;
}

/* Main nav: still compact, but comfortably readable. */
.public-nav a,
.public-header a,
.nxpbRoot .ngh-nav a{
  font-size:13px!important;
  font-weight:750!important;
}

/* Marketplace: fix the visibly dark heading/copy on dark gradient. */
.nxpbRoot .ngh-market .ngh-market-top h2{
  color:#ffffff!important;
  text-shadow:0 1px 1px rgba(0,0,0,.12)!important;
}
.nxpbRoot .ngh-market .ngh-market-top p{
  color:#e8f0ff!important;
  font-size:15px!important;
}
.nxpbRoot .ngh-market .ngh-eyebrow{
  color:#ffd76b!important;
}

/* Bottom CTA: strong white headline and readable supporting copy. */
.nxpbRoot .ngh-cta h2{
  color:#ffffff!important;
  text-shadow:0 1px 1px rgba(0,0,0,.14)!important;
}
.nxpbRoot .ngh-cta p{
  color:#dce9f7!important;
  font-size:15px!important;
  line-height:1.65!important;
  max-width:760px!important;
}
.nxpbRoot .ngh-cta .ngh-eyebrow{
  color:#ffd76b!important;
}

/* Who We Are image card: text must remain legible against photography. */
.nxpbRoot .ngh-about-visual{
  position:relative!important;
}
.nxpbRoot .ngh-about-visual::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:linear-gradient(180deg,rgba(9,25,43,.06) 20%,rgba(8,23,40,.74) 100%);
  pointer-events:none;
  z-index:1;
}
.nxpbRoot .ngh-about-copy-on-image{
  position:relative!important;
  z-index:2!important;
}
.nxpbRoot .ngh-about-copy-on-image .ngh-eyebrow{
  color:#ffd76b!important;
}
.nxpbRoot .ngh-about-copy-on-image h3{
  color:#ffffff!important;
  text-shadow:0 1px 2px rgba(0,0,0,.22)!important;
}
.nxpbRoot .ngh-about-copy-on-image p{
  color:#edf4fb!important;
  font-size:14px!important;
  line-height:1.65!important;
  text-shadow:0 1px 1px rgba(0,0,0,.18)!important;
}

/* Programme cards: clearer titles, descriptions and actions. */
.nxpbRoot .ngh-programme-cover h3{
  color:#ffffff!important;
}
.nxpbRoot .ngh-programme-cover span{
  color:#ffd75f!important;
  font-size:11px!important;
  font-weight:900!important;
}
.nxpbRoot .ngh-programme-body p{
  min-height:0!important;
  overflow-wrap:anywhere;
}
.nxpbRoot .ngh-programme-row{
  margin-top:14px!important;
  gap:10px!important;
}
.nxpbRoot .ngh-programme-row strong,
.nxpbRoot .ngh-programme-row a{
  font-size:12px!important;
  line-height:1.4!important;
}
.nxpbRoot .ngh-programme-row a,
.nxpbRoot .ngh-link{
  color:#5138d1!important;
  font-weight:850!important;
}

/* Ensure dark cards keep dark-surface text rules, rather than inheriting body colors. */
.nxpbRoot .ngh-market-card .ngh-market-cover,
.nxpbRoot .ngh-market-card .ngh-market-cover strong{
  color:#fff!important;
}
.nxpbRoot .ngh-market-card .ngh-market-body h3{
  color:#172033!important;
}
.nxpbRoot .ngh-market-card .ngh-market-body p{
  color:#4b5b70!important;
  font-size:14px!important;
}
.nxpbRoot .ngh-market-price strong{
  color:#172033!important;
  font-size:12px!important;
}
.nxpbRoot .ngh-market-price a{
  color:#4d38cf!important;
  font-size:12px!important;
  font-weight:850!important;
}

/* Buttons: yellow needs near-black copy; glass buttons need white copy. */
.nxpbRoot .ngh-btn.gold{
  color:#172033!important;
  font-weight:900!important;
}
.nxpbRoot .ngh-btn.glass{
  color:#ffffff!important;
}
.nxpbRoot .ngh-btn.blue{
  color:#ffffff!important;
}

/* Headings should remain visibly separate from paragraphs. */
.nxpbRoot .ngh-head h2,
.nxpbRoot .ngh-about-card h3,
.nxpbRoot .ngh-panel h3{
  color:#172033!important;
}
.nxpbRoot .ngh-head p,
.nxpbRoot .ngh-about-card p,
.nxpbRoot .ngh-panel p{
  color:#526175!important;
}

/* Footer and support UI */
.nxpbRoot .ngh-footer p,
.nxpbRoot .ngh-footer a,
.public-footer,
.public-footer a{
  color:#d8e2ee!important;
  font-size:12px!important;
}
.public-support-label{
  font-size:12px!important;
  font-weight:800!important;
}

/* Focus visibility */
.nxpbRoot a:focus-visible,
.nxpbRoot button:focus-visible,
.nxpbRoot input:focus-visible,
.nxpbRoot select:focus-visible,
.nxpbRoot textarea:focus-visible{
  outline:3px solid rgba(70,98,205,.35)!important;
  outline-offset:3px!important;
}

/* Mobile: body/form readability stays at 16px. */
@media(max-width:700px){
  .nxpbRoot p,
  .nxpbRoot li,
  .nxpbRoot .ngh-programme-body p,
  .nxpbRoot .ngh-market-body p,
  .nxpbRoot .ngh-panel p,
  .nxpbRoot .ngh-about-card p{
    font-size:16px!important;
  }
  .public-nav a,
  .public-header a,
  .nxpbRoot .ngh-nav a{
    font-size:14px!important;
  }
}
