/* Program pages only. Shared navigation and form behaviour are owned by the site assets. */
body.refresh-page .program-page {
  --program-navy: #061b49;
  --program-red: #b82e38;
  --program-text: #42516b;
  --program-line: #dce2eb;
  --program-tint: #f4f6fa;
  padding: 0;
  color: var(--program-text);
  background: #fff;
  font-family: var(--sans, 'AHMC Manrope', Arial, sans-serif);
}
body.refresh-page .program-page *,
body.refresh-page .program-page *::before,
body.refresh-page .program-page *::after { box-sizing: border-box; }
body.refresh-page .program-page .program-wrap {
  width: min(1120px, calc(100% - 64px));
  margin-inline: auto;
}
body.refresh-page .program-page h1,
body.refresh-page .program-page h2,
body.refresh-page .program-page h3 {
  color: var(--program-navy);
  font-family: inherit;
  font-weight: 800;
  text-transform: none;
}
body.refresh-page .program-page h1 {
  margin: 0;
  font-size: clamp(2rem, 3.35vw, 3rem);
  line-height: 1.16;
  letter-spacing: -.045em;
}
body.refresh-page .program-page h2 {
  margin: 0 0 18px;
  font-size: clamp(1.55rem, 2.35vw, 2rem);
  line-height: 1.25;
  letter-spacing: -.03em;
}
body.refresh-page .program-page h3 {
  margin: 0 0 10px;
  font-size: 1.08rem;
  line-height: 1.4;
  letter-spacing: -.015em;
}
body.refresh-page .program-page p {
  margin: 0 0 16px;
  font-size: 1rem;
  line-height: 1.75;
}
body.refresh-page .program-page p:last-child { margin-bottom: 0; }
body.refresh-page .program-page .program-kicker {
  margin: 0 0 16px;
  color: var(--program-red);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}
body.refresh-page .program-page .program-hero { border-bottom: 1px solid var(--program-line); }
body.refresh-page .program-page .program-hero-inner {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr);
  gap: clamp(32px, 5vw, 64px);
  align-items: center;
  padding-block: 48px;
}
body.refresh-page .program-page .program-hero-copy p:not(.program-kicker) {
  max-width: 54ch;
  margin: 22px 0;
}
body.refresh-page .program-page .program-hero-photo {
  margin: 0;
  overflow: hidden;
  background: var(--program-tint);
  aspect-ratio: 1.25 / 1;
  max-height: 360px;
}
body.refresh-page .program-page .program-hero-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
body.refresh-page .program-page .program-section { padding-block: 42px; }
body.refresh-page .program-page .program-section + .program-section { border-top: 1px solid var(--program-line); }
body.refresh-page .program-page .program-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  margin: 22px 0 30px;
  padding: 0;
  list-style: none;
  counter-reset: program-step;
}
body.refresh-page .program-page .program-steps > li {
  counter-increment: program-step;
  padding: 24px;
  border-top: 2px solid var(--program-red);
  background: var(--program-tint);
}
body.refresh-page .program-page .program-steps > li::before {
  display: block;
  margin-bottom: 16px;
  color: var(--program-red);
  font-size: .8rem;
  font-weight: 800;
  letter-spacing: .09em;
  content: counter(program-step, decimal-leading-zero);
}
body.refresh-page .program-page .program-steps p { font-size: .94rem; line-height: 1.7; }
body.refresh-page .program-page .program-participation { margin-block: 28px 22px; }
body.refresh-page .program-page .program-note {
  padding: 22px 24px;
  border-left: 3px solid var(--program-red);
  background: var(--program-tint);
}
body.refresh-page .program-page .program-note h2 { margin-bottom: 10px; font-size: 1.15rem; }
body.refresh-page .program-page .program-note p { font-size: .94rem; }
body.refresh-page .program-page .program-network-intro { max-width: 80ch; }
body.refresh-page .program-page .program-checklist {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px 32px;
  padding: 0;
  margin: 20px 0 0;
  list-style: none;
}
body.refresh-page .program-page .program-checklist li {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: 17px 18px;
  background: var(--program-tint);
  font-size: .96rem;
  line-height: 1.7;
}
body.refresh-page .program-page .program-checklist .program-check {
  flex: 0 0 18px;
  color: var(--program-red);
  font-size: 1.1rem;
  font-weight: 800;
}
body.refresh-page .program-page .program-chips {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  padding: 0;
  margin: 20px 0 0;
  list-style: none;
}
body.refresh-page .program-page .program-chips li {
  display: flex;
  align-items: center;
  min-height: 68px;
  padding: 16px 20px;
  border: 1px solid var(--program-line);
  color: var(--program-navy);
  font-size: .92rem;
  font-weight: 700;
  line-height: 1.55;
}
body.refresh-page .program-page .program-form-section { background: var(--program-tint); }
body.refresh-page .program-page .program-form-column { max-width: 680px; }
body.refresh-page .program-page .program-form-intro { margin-bottom: 28px; }
body.refresh-page .program-page .engagement-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 20px;
  margin: 0;
  padding: clamp(20px, 4vw, 36px);
  border: 1px solid var(--program-line);
  background: #fff;
}
body.refresh-page .program-page .eng-field { min-width: 0; }
body.refresh-page .program-page .eng-field > label,
body.refresh-page .program-page .eng-field legend {
  display: block;
  margin: 0 0 8px;
  padding: 0;
  color: var(--program-navy);
  font-size: .91rem;
  font-weight: 700;
  line-height: 1.6;
  text-transform: none;
  letter-spacing: 0;
}
body.refresh-page .program-page .eng-field label .program-optional {
  color: var(--program-text);
  font-weight: 400;
}
body.refresh-page .program-page .eng-field input:not([type='checkbox']):not([type='hidden']),
body.refresh-page .program-page .eng-field select,
body.refresh-page .program-page .eng-field textarea {
  display: block;
  width: 100%;
  min-height: 48px;
  margin: 0;
  padding: 12px 14px;
  border: 1px solid #8995a9;
  border-radius: 2px;
  background: #fff;
  color: var(--program-navy);
  font: inherit;
  font-size: 1rem;
  line-height: 1.5;
  text-transform: none;
  letter-spacing: 0;
}
body.refresh-page .program-page .eng-field textarea { resize: vertical; min-height: 124px; }
body.refresh-page .program-page .eng-field input[type='file'] { font-size: .9rem; }
body.refresh-page .program-page .eng-field input[type='file']::file-selector-button {
  min-height: 44px;
  margin: 0 12px 0 0;
  padding: 8px 12px;
  border: 1px solid var(--program-line);
  border-radius: 2px;
  background: var(--program-tint);
  color: var(--program-navy);
  font: inherit;
  cursor: pointer;
}
body.refresh-page .program-page fieldset.eng-field { padding: 0; margin: 0; border: 0; }
body.refresh-page .program-page .eng-field .program-checkbox-label {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  min-height: 44px;
  margin: 0;
  padding-block: 10px;
  font-size: .94rem;
  font-weight: 400;
  line-height: 1.65;
  cursor: pointer;
}
body.refresh-page .program-page .program-checkbox-label input[type='checkbox'] {
  flex: 0 0 20px;
  width: 20px;
  height: 20px;
  margin: 3px 0 0;
  accent-color: var(--program-navy);
  cursor: pointer;
}
body.refresh-page .program-page .program-specialties { display: grid; gap: 2px; }
body.refresh-page .program-page .program-help {
  margin: 8px 0 0;
  color: var(--program-text);
  font-size: .875rem;
  line-height: 1.65;
}
body.refresh-page .program-page .eng-error {
  display: block;
  margin-top: 5px;
  color: #a8212c;
  font-size: .875rem;
  line-height: 1.6;
}
body.refresh-page .program-page .eng-error:empty { margin: 0; }
body.refresh-page .program-page .eng-field [aria-invalid='true'] { border-color: #a8212c; }
body.refresh-page .program-page [data-form-status] {
  margin: 0;
  color: var(--program-navy);
  font-size: .94rem;
  line-height: 1.7;
}
body.refresh-page .program-page [data-form-status]:empty { display: none; }
body.refresh-page .program-page .program-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  width: fit-content;
  max-width: 100%;
  min-height: 48px;
  padding: 13px 20px;
  border: 1px solid var(--program-red);
  border-radius: 2px;
  background: var(--program-red);
  color: #fff;
  font: inherit;
  font-size: .9rem;
  font-weight: 800;
  line-height: 1.5;
  text-decoration: none;
  text-transform: none;
  letter-spacing: 0;
  cursor: pointer;
  touch-action: manipulation;
}
body.refresh-page .program-page .program-button:hover { background: var(--program-navy); border-color: var(--program-navy); }
body.refresh-page .program-page .program-button:disabled { cursor: wait; opacity: .7; }
body.refresh-page .program-page a:not(.program-button) {
  color: var(--program-red);
  text-decoration: underline;
  text-underline-offset: 3px;
}
body.refresh-page .program-page .program-text-link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding-block: 10px;
  font-weight: 700;
}
body.refresh-page .program-page .program-checkbox-label a {
  display: inline-block;
  min-height: 44px;
  padding-block: 10px;
  margin-block: -10px;
}
body.refresh-page .program-page :is(a, button, input, select, textarea):focus-visible {
  outline: 3px solid var(--program-navy);
  outline-offset: 4px;
}
body.refresh-page .program-page #refer,
body.refresh-page .program-page #apply { scroll-margin-top: 118px; }
body.refresh-page .program-page .program-good-to-know { padding-top: 28px; }
body.refresh-page .program-page .program-good-to-know h2 { font-size: 1.25rem; margin-bottom: 12px; }
body.refresh-page .program-page .program-good-to-know p { font-size: .94rem; }
body.refresh-page .program-page .program-relationship { margin-top: 20px; }
body.refresh-page .program-page .program-relationship p { font-size: max(14px, .94rem); line-height: 1.75; }
body.refresh-page .program-page .program-terms { max-width: 800px; padding-block: 52px; }
body.refresh-page .program-page .program-terms h1 { margin-bottom: 24px; }
body.refresh-page .program-page .program-terms-section { margin-top: 32px; }
body.refresh-page .program-page .program-terms-section h2 { font-size: 1.4rem; }
/* The skip link is a direct body child so it precedes the shared navigation. */
body.refresh-page.program-refresh .program-skip-link {
  position: fixed;
  top: 8px;
  left: 16px;
  z-index: 1000;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 12px 18px;
  transform: translateY(-180%);
  background: #fff;
  color: #061b49;
  font-size: 1rem;
  font-weight: 800;
}
body.refresh-page.program-refresh .program-skip-link:focus {
  transform: translateY(0);
  outline: 3px solid #061b49;
  outline-offset: 2px;
}
@media (max-width: 760px) {
  body.refresh-page .program-page .program-wrap { width: calc(100% - 40px); }
  body.refresh-page .program-page .program-hero-inner { grid-template-columns: 1fr; gap: 26px; padding-block: 28px 36px; }
  body.refresh-page .program-page .program-hero-photo { grid-row: 1; aspect-ratio: 1.7 / 1; max-height: 300px; }
  body.refresh-page .program-page h1 { font-size: clamp(1.95rem, 6.8vw, 2.8rem); }
  body.refresh-page .program-page .program-section { padding-block: 32px; }
  body.refresh-page .program-page .program-steps { grid-template-columns: 1fr; gap: 14px; }
  body.refresh-page .program-page .program-steps > li { padding: 22px; }
  body.refresh-page .program-page .program-checklist { grid-template-columns: 1fr; gap: 12px; }
  body.refresh-page .program-page .program-chips { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  body.refresh-page .program-page .program-chips li { padding: 14px; font-size: .88rem; }
  body.refresh-page .program-page .program-form-column { max-width: 680px; }
  body.refresh-page .program-page .program-note { padding: 20px; }
}
@media (max-width: 420px) {
  body.refresh-page .program-page .program-wrap { width: calc(100% - 32px); }
  body.refresh-page .program-page .engagement-form { padding: 20px 16px; }
  body.refresh-page .program-page .program-button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  body.refresh-page .program-page *, body.refresh-page.program-refresh .program-skip-link { scroll-behavior: auto; transition: none; }
}
