/**
 * Theme 17.0.13 — final public-template, popup, PWA and Load More repair.
 *
 * Scope: public theme surfaces only, except the community-channel popup which
 * is intentionally allowed to render over Student Commons when enabled.
 */

/* --------------------------------------------------------------------------
   Community-channel popup: keep its inverse surface authoritative even when
   Theme 17 / browser text-fill rules are stronger than the original inline CSS.
   -------------------------------------------------------------------------- */
.ns-cpop .ns-cpop-card {
  background:linear-gradient(155deg,#07101d 0%,#0b1730 100%) !important;
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
}
.ns-cpop .ns-cpop-title {
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  opacity:1 !important;
}
.ns-cpop .ns-cpop-sub {
  color:#d8e4ed !important;
  -webkit-text-fill-color:#d8e4ed !important;
  opacity:1 !important;
}
.ns-cpop .ns-cpop-pill {
  color:#063d2b !important;
  -webkit-text-fill-color:#063d2b !important;
  background:#d9fbe8 !important;
  border-color:#9de7bd !important;
}
.ns-cpop .ns-cpop-btn-tg,
.ns-cpop .ns-cpop-btn-tg :where(span,strong,svg,path) {
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  opacity:1 !important;
}
.ns-cpop .ns-cpop-btn-wa,
.ns-cpop .ns-cpop-btn-wa :where(span,strong,svg,path) {
  color:#052e1d !important;
  -webkit-text-fill-color:#052e1d !important;
  opacity:1 !important;
}
.ns-cpop .ns-cpop-dismiss {
  color:#e5edf3 !important;
  -webkit-text-fill-color:#e5edf3 !important;
  opacity:1 !important;
}
.ns-cpop .ns-cpop-close,
.ns-cpop .ns-cpop-close * {
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  opacity:1 !important;
}

/* --------------------------------------------------------------------------
   Load More: a primary action, not a tiny muted text control.
   -------------------------------------------------------------------------- */
body.ns17:not(.nsc5-document) .ns-load-more {
  margin-top:2.2rem !important;
  padding:1.25rem 0 .25rem !important;
}
body.ns17:not(.nsc5-document) .ns-load-more-btn {
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:.65rem !important;
  min-width:190px !important;
  min-height:50px !important;
  padding:.82rem 1.35rem !important;
  border:2px solid #07583a !important;
  border-radius:14px !important;
  background:#07583a !important;
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  font-size:1rem !important;
  line-height:1.2 !important;
  font-weight:800 !important;
  box-shadow:0 8px 22px rgba(7,88,58,.20) !important;
  opacity:1 !important;
}
body.ns17:not(.nsc5-document) .ns-load-more-btn :where(span,.ns-load-more-text,svg,path,polyline) {
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  stroke:currentColor !important;
  opacity:1 !important;
}
body.ns17:not(.nsc5-document) .ns-load-more-btn svg {
  width:20px !important;
  height:20px !important;
  flex:0 0 20px !important;
}
body.ns17:not(.nsc5-document) .ns-load-more-btn:hover,
body.ns17:not(.nsc5-document) .ns-load-more-btn:focus-visible {
  background:#043d29 !important;
  border-color:#043d29 !important;
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  box-shadow:0 10px 28px rgba(4,61,41,.28) !important;
  transform:translateY(-1px);
}
body.ns17:not(.nsc5-document) .ns-load-more-btn:focus-visible {
  outline:3px solid #1769aa !important;
  outline-offset:3px !important;
}
body.ns17:not(.nsc5-document) .ns-load-more-btn:disabled {
  background:#52645b !important;
  border-color:#52645b !important;
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  opacity:1 !important;
  cursor:not-allowed !important;
  box-shadow:none !important;
}
html[data-theme="dark"] body.ns17:not(.nsc5-document) .ns-load-more-btn {
  background:#d9fbe8 !important;
  border-color:#d9fbe8 !important;
  color:#053b28 !important;
  -webkit-text-fill-color:#053b28 !important;
}
html[data-theme="dark"] body.ns17:not(.nsc5-document) .ns-load-more-btn :where(span,.ns-load-more-text,svg,path,polyline) {
  color:#053b28 !important;
  -webkit-text-fill-color:#053b28 !important;
}
html[data-theme="dark"] body.ns17:not(.nsc5-document) .ns-load-more-btn:hover,
html[data-theme="dark"] body.ns17:not(.nsc5-document) .ns-load-more-btn:focus-visible {
  background:#ffffff !important;
  border-color:#ffffff !important;
  color:#052e20 !important;
  -webkit-text-fill-color:#052e20 !important;
}

/* --------------------------------------------------------------------------
   Public custom templates and legal pages. Explicit text ownership prevents
   generic theme/link/button rules from washing out nested template content.
   -------------------------------------------------------------------------- */
body.ns17:not(.nsc5-document) :is(.ns-tpl-body,.ns-tpl-legal-body,.ns-pg-section,.ns-pg-section--alt) {
  color:#263a32 !important;
  -webkit-text-fill-color:#263a32 !important;
}
body.ns17:not(.nsc5-document) :is(.ns-tpl-body,.ns-tpl-legal-body,.ns-pg-section,.ns-pg-section--alt)
  :where(h1,h2,h3,h4,h5,h6,strong,.ns-tpl-section-title,.ns-pg-section-hdr h2,.ns-pg-stat-num,.ns-price-num,.ns-price-currency) {
  color:#10231c !important;
  -webkit-text-fill-color:#10231c !important;
  opacity:1 !important;
}
body.ns17:not(.nsc5-document) :is(.ns-tpl-body,.ns-tpl-legal-body,.ns-pg-section,.ns-pg-section--alt)
  :where(p,li,dd,dt,.ns-tpl-section-intro,.ns-tpl-prose,.ns-tpl-standard p,.ns-tpl-process-content p,.ns-pg-section-hdr p,.ns-pg-card p,.ns-pg-stat-label,.ns-price-hdr p,.ns-price-period,.ns-contact-action span,.ns-contact-card a,.ns-contact-card span,.ns-contact-expect-item span,.ns-tpl-legal-list-item>div,.ns-tpl-legal-foot p,.ns-tpl-faq-a) {
  color:#33483e !important;
  -webkit-text-fill-color:#33483e !important;
  opacity:1 !important;
}
body.ns17:not(.nsc5-document) :is(.ns-tpl-body,.ns-tpl-legal-body,.ns-pg-section,.ns-pg-section--alt)
  :where(a:not(.ns-btn):not(.ns-price-btn):not(.ns-contact-action):not(.ns-pg-cta-btn)) {
  color:#07583a !important;
  -webkit-text-fill-color:#07583a !important;
  opacity:1 !important;
  text-decoration-color:rgba(7,88,58,.55) !important;
}
body.ns17:not(.nsc5-document) :is(.ns-tpl-body,.ns-tpl-legal-body,.ns-pg-section,.ns-pg-section--alt)
  :where(a:not(.ns-btn):not(.ns-price-btn):not(.ns-contact-action):not(.ns-pg-cta-btn)):hover {
  color:#043d29 !important;
  -webkit-text-fill-color:#043d29 !important;
  text-decoration-color:#043d29 !important;
}

/* Stable light surfaces. */
body.ns17:not(.nsc5-document) :where(.ns-pg-card,.ns-price-card,.ns-contact-action,.ns-contact-card,.ns-tpl-form-card,.ns-tpl-faq-item,.ns-tpl-standard,.ns-tpl-legal-foot) {
  background:#ffffff !important;
  border-color:#aabbb2 !important;
}
body.ns17:not(.nsc5-document) :where(.ns-contact-action,.ns-contact-card,.ns-tpl-faq-q) {
  color:#10231c !important;
  -webkit-text-fill-color:#10231c !important;
}
body.ns17:not(.nsc5-document) :where(.ns-contact-action-icon,.ns-contact-card-icon,.ns-tpl-standard-icon,.ns-pg-card-icon) {
  color:#07583a !important;
  -webkit-text-fill-color:#07583a !important;
  opacity:1 !important;
}

/* Form controls on Contact and other custom templates. */
body.ns17:not(.nsc5-document) :where(.ns-form-group input,.ns-form-group textarea,.ns-form-group select) {
  background:#ffffff !important;
  color:#10231c !important;
  -webkit-text-fill-color:#10231c !important;
  border-color:#71867c !important;
  opacity:1 !important;
}
body.ns17:not(.nsc5-document) :where(.ns-form-group input,.ns-form-group textarea)::placeholder {
  color:#52645b !important;
  -webkit-text-fill-color:#52645b !important;
  opacity:1 !important;
}
body.ns17:not(.nsc5-document) .ns-form-group select option {
  background:#ffffff !important;
  color:#10231c !important;
}
body.ns17:not(.nsc5-document) .ns-form-group label {
  color:#10231c !important;
  -webkit-text-fill-color:#10231c !important;
}

/* Filled custom-template actions. */
body.ns17:not(.nsc5-document) :where(.ns-btn,.ns-price-btn--primary,.ns-pg-cta-btn) {
  background:#07583a !important;
  border-color:#07583a !important;
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  opacity:1 !important;
}
body.ns17:not(.nsc5-document) :where(.ns-btn,.ns-price-btn--primary,.ns-pg-cta-btn) * {
  color:inherit !important;
  -webkit-text-fill-color:inherit !important;
  opacity:1 !important;
}
body.ns17:not(.nsc5-document) :where(.ns-btn,.ns-price-btn--primary,.ns-pg-cta-btn):hover,
body.ns17:not(.nsc5-document) :where(.ns-btn,.ns-price-btn--primary,.ns-pg-cta-btn):focus-visible {
  background:#043d29 !important;
  border-color:#043d29 !important;
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
}
body.ns17:not(.nsc5-document) .ns-price-btn:not(.ns-price-btn--primary) {
  background:#ffffff !important;
  border-color:#07583a !important;
  color:#07583a !important;
  -webkit-text-fill-color:#07583a !important;
}
body.ns17:not(.nsc5-document) .ns-price-btn:not(.ns-price-btn--primary):hover,
body.ns17:not(.nsc5-document) .ns-price-btn:not(.ns-price-btn--primary):focus-visible {
  background:#07583a !important;
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
}

/* Keep legal/template hero text on its intentional inverse surface. */
body.ns17:not(.nsc5-document) :where(.ns-tpl-hero,.ns-pg-hero) :where(h1,h2,h3,p,.ns-tpl-hero-sub,.ns-tpl-legal-meta,.ns-pg-hero-sub) {
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  opacity:1 !important;
}
body.ns17:not(.nsc5-document) :where(.ns-tpl-hero,.ns-pg-hero) :where(.ns-tpl-badge,.ns-pg-badge) {
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  background:rgba(0,0,0,.26) !important;
  border-color:rgba(255,255,255,.72) !important;
  opacity:1 !important;
}

/* Dark-mode counterparts for all custom/legal content. */
html[data-theme="dark"] body.ns17:not(.nsc5-document) :is(.ns-tpl-body,.ns-tpl-legal-body,.ns-pg-section,.ns-pg-section--alt) {
  color:#d9e7df !important;
  -webkit-text-fill-color:#d9e7df !important;
}
html[data-theme="dark"] body.ns17:not(.nsc5-document) :is(.ns-tpl-body,.ns-tpl-legal-body,.ns-pg-section,.ns-pg-section--alt)
  :where(h1,h2,h3,h4,h5,h6,strong,.ns-tpl-section-title,.ns-pg-section-hdr h2,.ns-pg-stat-num,.ns-price-num,.ns-price-currency) {
  color:#f4fff9 !important;
  -webkit-text-fill-color:#f4fff9 !important;
}
html[data-theme="dark"] body.ns17:not(.nsc5-document) :is(.ns-tpl-body,.ns-tpl-legal-body,.ns-pg-section,.ns-pg-section--alt)
  :where(p,li,dd,dt,.ns-tpl-section-intro,.ns-tpl-prose,.ns-tpl-standard p,.ns-tpl-process-content p,.ns-pg-section-hdr p,.ns-pg-card p,.ns-pg-stat-label,.ns-price-hdr p,.ns-price-period,.ns-contact-action span,.ns-contact-card a,.ns-contact-card span,.ns-contact-expect-item span,.ns-tpl-legal-list-item>div,.ns-tpl-legal-foot p,.ns-tpl-faq-a) {
  color:#c4d7cd !important;
  -webkit-text-fill-color:#c4d7cd !important;
}
html[data-theme="dark"] body.ns17:not(.nsc5-document) :is(.ns-tpl-body,.ns-tpl-legal-body,.ns-pg-section,.ns-pg-section--alt)
  :where(a:not(.ns-btn):not(.ns-price-btn):not(.ns-contact-action):not(.ns-pg-cta-btn)) {
  color:#9df5c4 !important;
  -webkit-text-fill-color:#9df5c4 !important;
  text-decoration-color:rgba(157,245,196,.65) !important;
}
html[data-theme="dark"] body.ns17:not(.nsc5-document) :where(.ns-pg-card,.ns-price-card,.ns-contact-action,.ns-contact-card,.ns-tpl-form-card,.ns-tpl-faq-item,.ns-tpl-standard,.ns-tpl-legal-foot) {
  background:#111d18 !important;
  border-color:#71867c !important;
}
html[data-theme="dark"] body.ns17:not(.nsc5-document) :where(.ns-contact-action,.ns-contact-card,.ns-tpl-faq-q) {
  color:#f4fff9 !important;
  -webkit-text-fill-color:#f4fff9 !important;
}
html[data-theme="dark"] body.ns17:not(.nsc5-document) :where(.ns-contact-action-icon,.ns-contact-card-icon,.ns-tpl-standard-icon,.ns-pg-card-icon) {
  color:#9df5c4 !important;
  -webkit-text-fill-color:#9df5c4 !important;
}
html[data-theme="dark"] body.ns17:not(.nsc5-document) :where(.ns-form-group input,.ns-form-group textarea,.ns-form-group select) {
  background:#0b1511 !important;
  color:#f4fff9 !important;
  -webkit-text-fill-color:#f4fff9 !important;
  border-color:#8eae9e !important;
}
html[data-theme="dark"] body.ns17:not(.nsc5-document) :where(.ns-form-group input,.ns-form-group textarea)::placeholder {
  color:#c4d7cd !important;
  -webkit-text-fill-color:#c4d7cd !important;
}
html[data-theme="dark"] body.ns17:not(.nsc5-document) .ns-form-group select option {
  background:#0b1511 !important;
  color:#f4fff9 !important;
}
html[data-theme="dark"] body.ns17:not(.nsc5-document) .ns-form-group label {
  color:#f4fff9 !important;
  -webkit-text-fill-color:#f4fff9 !important;
}

/* --------------------------------------------------------------------------
   PWA floating prompt: clearer icons and a bounded display window.
   JS controls how long it remains visible; CSS keeps the icon/close affordance
   recognisable in both theme modes.
   -------------------------------------------------------------------------- */
body.ns17:not(.nsc5-document) .nspwa-install-pill {
  min-height:48px !important;
  padding:8px 7px 8px 14px !important;
  gap:9px !important;
}
body.ns17:not(.nsc5-document) .nspwa-install-pill-ico {
  width:21px !important;
  height:21px !important;
  flex:0 0 21px !important;
  color:#ffffff !important;
  stroke:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  filter:drop-shadow(0 1px 1px rgba(0,0,0,.25));
}
body.ns17:not(.nsc5-document) .nspwa-install-pill-ico :where(path,line,polyline) {
  stroke:#ffffff !important;
  opacity:1 !important;
}
body.ns17:not(.nsc5-document) .nspwa-install-trigger {
  min-height:34px !important;
  padding:0 2px !important;
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  font-size:.9rem !important;
  font-weight:800 !important;
}
body.ns17:not(.nsc5-document) .nspwa-install-close {
  width:34px !important;
  height:34px !important;
  padding:0 !important;
  border-radius:50% !important;
  flex:0 0 34px !important;
}
body.ns17:not(.nsc5-document) .nspwa-install-close svg {
  width:17px !important;
  height:17px !important;
  color:#ffffff !important;
  stroke:#ffffff !important;
}
body.ns17:not(.nsc5-document) .nspwa-install-close svg :where(line,path) {
  stroke:#ffffff !important;
}
body.ns17:not(.nsc5-document) .nspwa-install-pill.nspwa-leaving {
  opacity:0 !important;
  transform:translateY(8px) scale(.98) !important;
  pointer-events:none !important;
}

@media(max-width:600px) {
  body.ns17:not(.nsc5-document) .ns-load-more-btn { width:min(100%,320px) !important; }
}
@media(forced-colors:active) {
  .ns-cpop *,
  body.ns17:not(.nsc5-document) :where(.ns-load-more-btn,.nspwa-install-pill,.ns-tpl-body,.ns-tpl-legal-body,.ns-pg-section) {
    forced-color-adjust:auto !important;
  }
}
