/*
 * PESS ONE V4.0.5 — FINAL PUBLIC PAGE STABILITY LAYER
 * Public-only authoritative contrast, component containment and layout safeguards.
 * Loaded LAST, after app.css, all version CSS, Branding Studio inline CSS,
 * internship-public.css and contrast-system.css.
 */

:root{
  --pp5-dark:#0a4929;
  --pp5-dark-2:#07351f;
  --pp5-on-dark:#ffffff;
  --pp5-on-dark-muted:#dce9e0;
  --pp5-on-dark-soft:#bfd1c5;
  --pp5-on-light:#172b20;
  --pp5-on-light-muted:#586b60;
  --pp5-surface:#ffffff;
  --pp5-surface-soft:#f5f8f6;
  --pp5-line:#dce7df;
  --pp5-accent:var(--pess-accent,#afc936);
}

/* Global public containment. */
html,body.pp-public-body{max-width:100%;overflow-x:hidden!important}
.pp-public-body,.pp-public-body *{text-rendering:optimizeLegibility}
.pp-public-body .pp-container,
.pp-public-body .v402-internship .pp-container{min-width:0}

/* Header: always a light surface. */
.pp-public-body .pp-header,
.pp-public-body .pp-header-inner,
.pp-public-body .pp-mobile-menu{background:#fff!important;color:var(--pp5-on-light)!important}
.pp-public-body .pp-brand,
.pp-public-body .pp-brand strong,
.pp-public-body .pp-nav a,
.pp-public-body .pp-mobile-menu a{color:#294337!important;opacity:1!important}
.pp-public-body .pp-brand small{color:#5c7064!important;opacity:1!important}
.pp-public-body .pp-nav a[aria-current="page"],
.pp-public-body .pp-mobile-menu a[aria-current="page"]{color:var(--pess-primary,#0a4929)!important;background:#edf5ee!important}
.pp-public-body .pp-staff-link{background:var(--pess-primary,#0a4929)!important;color:#fff!important}

/* HOME hero: dark band. */
.pp-public-body .pp-hero,
.pp-public-body .pp-hero-copy{color:var(--pp5-on-dark)!important}
.pp-public-body .pp-hero-copy h1,
.pp-public-body .pp-hero-copy h2,
.pp-public-body .pp-hero-copy h3,
.pp-public-body .pp-hero-copy strong,
.pp-public-body .pp-hero-copy b{color:#fff!important;opacity:1!important}
.pp-public-body .pp-hero-copy .pp-lead,
.pp-public-body .pp-hero-copy .pp-hero-foot,
.pp-public-body .pp-hero-copy .pp-hero-foot span{color:#e7f1ea!important;opacity:1!important}
.pp-public-body .pp-hero-copy .pp-eyebrow{color:#e2efad!important;opacity:1!important}

/* HOME journey card: explicitly reset ALL text because it is nested inside a dark hero. */
.pp-public-body .pp-hero .pp-hero-aside{background:#fff!important;color:var(--pp5-on-light)!important}
.pp-public-body .pp-hero .pp-hero-aside .pp-progress-head b,
.pp-public-body .pp-hero .pp-hero-aside .pp-journey b{color:#1f3428!important;opacity:1!important;font-weight:800!important}
.pp-public-body .pp-hero .pp-hero-aside .pp-progress-head small,
.pp-public-body .pp-hero .pp-hero-aside .pp-journey small{color:#52665a!important;opacity:1!important}
.pp-public-body .pp-hero .pp-hero-aside .pp-progress-note{color:#405f4e!important;background:#eff7f0!important;border-color:#d4e5d7!important;opacity:1!important}
.pp-public-body .pp-hero .pp-hero-aside .pp-journey li>span{color:#155835!important;background:#eaf3ec!important;opacity:1!important}
.pp-public-body .pp-hero .pp-hero-aside .pp-progress-icon{color:#d9eb81!important;background:#0a4929!important;opacity:1!important}

/* All normal light public sections. */
.pp-public-body .pp-entry-section,
.pp-public-body .pp-featured,
.pp-public-body .pp-quick-enquiry,
.pp-public-body .pp-enquiry-card,
.pp-public-body .pp-enquiry-form,
.pp-public-body .public-register-card,
.pp-public-body .public-success,
.pp-public-body .v400-verify-card,
.pp-public-body .v402-section:not(.v402-overview-band),
.pp-public-body .v402-final-cta{color:var(--pp5-on-light)!important}
.pp-public-body .pp-entry-section h1,
.pp-public-body .pp-entry-section h2,
.pp-public-body .pp-entry-section h3,
.pp-public-body .pp-featured h1,
.pp-public-body .pp-featured h2,
.pp-public-body .pp-featured h3,
.pp-public-body .pp-quick-enquiry h1,
.pp-public-body .pp-quick-enquiry h2,
.pp-public-body .pp-enquiry-card h1,
.pp-public-body .pp-enquiry-card h2,
.pp-public-body .pp-enquiry-form h1,
.pp-public-body .pp-enquiry-form h2,
.pp-public-body .v400-verify-card h1,
.pp-public-body .v400-verify-card h2{color:var(--pp5-on-light)!important;opacity:1!important}
.pp-public-body .pp-entry-section p,
.pp-public-body .pp-featured p,
.pp-public-body .pp-quick-enquiry p,
.pp-public-body .pp-enquiry-card p,
.pp-public-body .pp-enquiry-form p,
.pp-public-body .v400-verify-card p{color:var(--pp5-on-light-muted)!important;opacity:1!important}

/* Internship hero: outer band dark, status card inside it light. */
.pp-public-body .v402-hero,
.pp-public-body .v402-hero-copy{color:#fff!important}
.pp-public-body .v402-hero-copy h1,
.pp-public-body .v402-hero-copy h2,
.pp-public-body .v402-hero-copy h3,
.pp-public-body .v402-hero-copy b,
.pp-public-body .v402-hero-copy strong{color:#fff!important;opacity:1!important}
.pp-public-body .v402-hero-copy>p{color:#e0ece4!important;opacity:1!important}
.pp-public-body .v402-kicker{color:#e0efa7!important;opacity:1!important}
.pp-public-body .v402-trust-row b{color:#fff!important;opacity:1!important}
.pp-public-body .v402-trust-row small{color:#d1e0d6!important;opacity:1!important}

/* Critical fix: white Internship status card was inheriting white b/strong from the hero. */
.pp-public-body .v402-hero .v402-status-card{background:#fff!important;color:var(--pp5-on-light)!important}
.pp-public-body .v402-hero .v402-status-card h1,
.pp-public-body .v402-hero .v402-status-card h2,
.pp-public-body .v402-hero .v402-status-card h3,
.pp-public-body .v402-hero .v402-status-card .v402-status-list b,
.pp-public-body .v402-hero .v402-status-card .v402-status-link{color:#1a3426!important;opacity:1!important}
.pp-public-body .v402-hero .v402-status-card .v402-status-head>span,
.pp-public-body .v402-hero .v402-status-card .v402-status-list span{color:#61736a!important;opacity:1!important}
.pp-public-body .v402-hero .v402-status-card .v402-status-list div{background:#f5f8f6!important;border-color:#e2ebe5!important}
.pp-public-body .v402-hero .v402-status-card .v402-status-pill.is-open{background:#e7f5ea!important;color:#236d3b!important;opacity:1!important}
.pp-public-body .v402-hero .v402-status-card .v402-status-pill.is-opening_soon{background:#fff4d8!important;color:#775b0c!important;opacity:1!important}
.pp-public-body .v402-hero .v402-status-card .v402-status-pill.is-closed,
.pp-public-body .v402-hero .v402-status-card .v402-status-pill.is-completed,
.pp-public-body .v402-hero .v402-status-card .v402-status-pill.is-cancelled{background:#eef1ef!important;color:#5c6961!important;opacity:1!important}
.pp-public-body .v402-hero .v402-status-card .v402-status-note{color:#5e7166!important;opacity:1!important}

/* Internship opportunity cards are light. */
.pp-public-body .v402-opportunity-card,
.pp-public-body .v402-opportunity-main,
.pp-public-body .v402-opportunity-side{color:var(--pp5-on-light)!important}
.pp-public-body .v402-opportunity-main h3,
.pp-public-body .v402-fact-grid b,
.pp-public-body .v402-departments span{color:#284437!important;opacity:1!important}
.pp-public-body .v402-opportunity-main>p,
.pp-public-body .v402-fact-grid small,
.pp-public-body .v402-seat-total small{color:#5e7167!important;opacity:1!important}
.pp-public-body .v402-seat-total strong,
.pp-public-body .v402-departments b{color:var(--pess-primary,#0a4929)!important;opacity:1!important}

/* Critical fix: do not use generic .light utility inside Internship dark band. */
.pp-public-body .v402-overview-band{background:#0a3b27!important;color:#fff!important}
.pp-public-body .v402-overview-band .v402-section-head,
.pp-public-body .v402-overview-band .v402-section-head.v402-section-head-dark{
  background:transparent!important;
  color:#fff!important;
  border:0!important;
  box-shadow:none!important;
  padding:0!important;
}
.pp-public-body .v402-overview-band .v402-section-head .pp-section-label{color:#ddeb9e!important;opacity:1!important}
.pp-public-body .v402-overview-band .v402-section-head h2{color:#fff!important;opacity:1!important}
.pp-public-body .v402-overview-band .v402-section-head p{color:#d1e0d6!important;opacity:1!important}
.pp-public-body .v402-overview-card{background:rgba(255,255,255,.075)!important;border-color:rgba(255,255,255,.16)!important;color:#fff!important}
.pp-public-body .v402-overview-card>span{color:#ddeb9e!important;opacity:1!important}
.pp-public-body .v402-overview-card b{color:#fff!important;opacity:1!important}
.pp-public-body .v402-overview-card small{color:#d1e0d6!important;opacity:1!important}

/* White placement cards nested inside the dark overview band. */
.pp-public-body .v402-overview-band .v402-placement-row article{background:#fff!important;color:var(--pp5-on-light)!important}
.pp-public-body .v402-overview-band .v402-placement-row h3{color:#1d3829!important;opacity:1!important}
.pp-public-body .v402-overview-band .v402-placement-row p{color:#5d7064!important;opacity:1!important}
.pp-public-body .v402-overview-band .v402-placement-row span{color:#557360!important;opacity:1!important}

/* Timeline and supporting cards are light surfaces. */
.pp-public-body .v402-timeline article,
.pp-public-body .v402-programme-bottom article,
.pp-public-body .v402-form-card,
.pp-public-body .v402-empty,
.pp-public-body .v402-success{background:#fff!important;color:var(--pp5-on-light)!important}
.pp-public-body .v402-timeline h3,
.pp-public-body .v402-programme-bottom h3,
.pp-public-body .v402-form-card h2,
.pp-public-body .v402-form-card h3,
.pp-public-body .v402-empty strong{color:#20392b!important;opacity:1!important}
.pp-public-body .v402-timeline p,
.pp-public-body .v402-programme-bottom p,
.pp-public-body .v402-programme-bottom li,
.pp-public-body .v402-form-card p,
.pp-public-body .v402-form-card small{color:#5e7066!important;opacity:1!important}

/* Status-check band stays dark; returned result stays white/dark-copy. */
.pp-public-body .v402-status-check{color:#fff!important}
.pp-public-body .v402-status-check h1,
.pp-public-body .v402-status-check h2,
.pp-public-body .v402-status-check h3{color:#fff!important}
.pp-public-body .v402-status-check>div>p{color:#d5e3da!important}
.pp-public-body .v402-status-check .v402-status-result{background:#fff!important;color:var(--pp5-on-light)!important}
.pp-public-body .v402-status-check .v402-status-result span,
.pp-public-body .v402-status-check .v402-status-result p{color:#5d7065!important}
.pp-public-body .v402-status-check .v402-status-result strong{color:var(--pess-primary,#0a4929)!important}

/* Footer: dark surface with guaranteed readable logo/copy. */
.pp-public-body .pp-footer{color:#fff!important}
.pp-public-body .pp-footer-logo,
.pp-public-body .pp-footer-logo b,
.pp-public-body .pp-footer-brand>strong{color:#fff!important;opacity:1!important}
.pp-public-body .pp-footer-brand p,
.pp-public-body .pp-footer a,
.pp-public-body .pp-footer span{color:#e0ece4!important;opacity:1!important}
.pp-public-body .pp-footer small,
.pp-public-body .pp-footer-bottom span{color:#b8cdbf!important;opacity:1!important}
.pp-public-body .pp-footer-column h3{color:#ddeb9e!important;opacity:1!important}

/* Form readability. */
.pp-public-body input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),
.pp-public-body select,
.pp-public-body textarea{opacity:1!important}
.pp-public-body .v402-form-card input:not([type="checkbox"]):not([type="radio"]),
.pp-public-body .v402-form-card select,
.pp-public-body .v402-form-card textarea,
.pp-public-body .pp-enquiry-form input,
.pp-public-body .pp-enquiry-form select,
.pp-public-body .pp-enquiry-form textarea,
.pp-public-body .public-register-card input:not([type="checkbox"]):not([type="radio"]),
.pp-public-body .public-register-card select,
.pp-public-body .public-register-card textarea,
.pp-public-body .v400-verify-card input{background:#fff!important;color:#172b20!important;border-color:#ccdcd2!important}
.pp-public-body input::placeholder,
.pp-public-body textarea::placeholder{color:#718279!important;opacity:1!important}

/* Buttons: explicit contrast. */
.pp-public-body .pp-button-primary,
.pp-public-body .v402-submit,
.pp-public-body .pp-staff-link{color:#fff!important}
.pp-public-body .pp-button-lime,
.pp-public-body .v402-btn-accent{color:#15361e!important}
.pp-public-body .pp-button-outline,
.pp-public-body .v402-btn-ghost{color:#fff!important}

/* Selection should not make dark-band text look broken. */
.pp-public-body ::selection{background:#d7e86d;color:#17351f}

/* Slightly stronger readability on photographed/low-quality displays. */
.pp-public-body .pp-journey small,
.pp-public-body .v402-status-list b,
.pp-public-body .v402-fact-grid b,
.pp-public-body .v402-overview-card small{font-weight:600}

@media(max-width:760px){
  .pp-public-body .v402-section-head.v402-section-head-dark{padding:0!important}
  .pp-public-body .v402-status-card{width:100%!important;max-width:100%!important}
}

/* PESS ONE V4.0.6 — resilient public form workflow */
.pp-draft-status{display:flex;align-items:center;gap:8px;margin:0 0 14px;padding:9px 11px;border:1px solid #dce7df;border-radius:10px;background:#f7faf8;color:#51645a;font:600 11px/1.4 Inter,Arial,sans-serif}.pp-draft-dot{width:8px;height:8px;border-radius:50%;background:#8ca095;box-shadow:0 0 0 3px #edf3ef}.pp-draft-status.saved .pp-draft-dot,.pp-draft-status.restored .pp-draft-dot{background:#2f7d4b;box-shadow:0 0 0 3px #e5f3e9}.pp-public-runtime-error{display:grid;gap:4px;margin:0 0 16px;padding:14px 16px;border:1px solid #efc9c2;border-left:4px solid #b6402f;border-radius:12px;background:#fff7f5;color:#55271f}.pp-public-runtime-error b{font-size:13px;color:#7f2f24}.pp-public-runtime-error span{font-size:12px}.pp-public-runtime-error small{font-size:10px;color:#79534c}.pp-review-open{overflow:hidden}.pp-review-modal{position:fixed;inset:0;z-index:100000}.pp-review-modal[hidden]{display:none!important}.pp-review-backdrop{position:absolute;inset:0;background:rgba(5,26,17,.72);backdrop-filter:blur(5px)}.pp-review-dialog{position:relative;width:min(860px,calc(100% - 28px));max-height:calc(100vh - 36px);margin:18px auto;background:#fff;color:#1d3025;border-radius:20px;box-shadow:0 28px 80px rgba(0,0,0,.28);display:flex;flex-direction:column;overflow:hidden}.pp-review-dialog>header{display:flex;justify-content:space-between;gap:18px;padding:22px 24px;border-bottom:1px solid #e3ebe5;background:#fbfdfb}.pp-review-dialog>header span{display:block;color:#74857b;font-size:9px;letter-spacing:.14em;font-weight:800}.pp-review-dialog>header h2{margin:4px 0 5px;color:#153925;font-size:24px}.pp-review-dialog>header p{margin:0;color:#607168;font-size:11px}.pp-review-x{border:0;background:#edf3ef;color:#274537;width:36px;height:36px;border-radius:10px;font-size:24px;cursor:pointer}.pp-review-body{padding:20px 24px;overflow:auto;display:grid;gap:16px}.pp-review-group{border:1px solid #e1e9e3;border-radius:14px;overflow:hidden;background:#fff}.pp-review-group h3{margin:0;padding:11px 14px;background:#f3f7f4;color:#173b28;font-size:12px}.pp-review-group>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.pp-review-group article{padding:10px 14px;border-top:1px solid #edf1ee;min-width:0}.pp-review-group article:nth-child(odd){border-right:1px solid #edf1ee}.pp-review-group span,.pp-review-group b{display:block}.pp-review-group span{font-size:9px;color:#78887f;text-transform:uppercase;letter-spacing:.06em}.pp-review-group b{margin-top:3px;font-size:11px;color:#263d31;overflow-wrap:anywhere;white-space:pre-line}.pp-review-dialog>footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px;border-top:1px solid #e3ebe5;background:#fbfdfb}.pp-review-edit{background:#eef3f0!important;color:#29483a!important;border:1px solid #d8e2db!important}.pp-form-policy{display:block;margin-top:6px;color:#687970;font-size:9px;line-height:1.45}.pp-form-policy strong{color:#274b38}.pp-public-workflow-note{margin:12px 0 0;padding:10px 12px;border-radius:10px;background:#f4f8f5;color:#617268;font-size:10px;line-height:1.5}.pp-public-workflow-note b{color:#244a36}
@media(max-width:640px){.pp-review-dialog{width:calc(100% - 16px);max-height:calc(100vh - 16px);margin:8px auto;border-radius:15px}.pp-review-dialog>header,.pp-review-body,.pp-review-dialog>footer{padding-left:15px;padding-right:15px}.pp-review-group>div{grid-template-columns:1fr}.pp-review-group article:nth-child(odd){border-right:0}.pp-review-dialog>footer{display:grid;grid-template-columns:1fr 1fr}.pp-review-dialog>footer .pp-button{width:100%;justify-content:center}.pp-draft-status{font-size:10px}}
.pp-form-policy.invalid{color:#9b3729!important}.pp-form-policy.invalid strong{color:#9b3729!important}
