/**
 * Long Program components.
 *
 * Loaded only on long Program singles.
 */

body.single-program .jci-long-program__nav-bar {
  position: relative;
  z-index: 40;
  min-width: 0;
}

@media (min-width: 769px) {
  /* Keep the section-navigation rules and CTA inside one bordered component.
   * The shared navigation previously drew its lines on the list viewport, which
   * left the sticky conversion action visually outside the menu. */
  body.single-program:not(.home):not(.front-page) .jci-horizontal-menu.jci-long-program__nav.sup-nav {
    border-top: solid thin #0D0D0D;
    border-bottom: solid thin #0D0D0D;
  }

  body.single-program:not(.home):not(.front-page) .jci-horizontal-menu.jci-long-program__nav.sup-nav .jci-horizontal-menu__list.sup-nav__list {
    padding: 12px 30px;
    border-top: 0;
    border-bottom: 0;
  }

  body.single-program .jci-long-program__nav .jci-horizontal-menu__link {
    border-bottom-color: transparent;
    font-weight: 500;
    transition: color 160ms ease, border-color 160ms ease;
  }

  body.single-program .jci-long-program__nav .jci-horizontal-menu__item:is(.active, .is-active) > .jci-horizontal-menu__link,
  body.single-program .jci-long-program__nav .jci-horizontal-menu__link:is(.is-active, [aria-current="location"]) {
    border-bottom-color: transparent;
    color: var(--color-brand-blue, #487cff);
    font-weight: 700;
    text-decoration: none;
  }

  body.single-program .jci-long-program__nav-item--utility {
    display: none;
  }

  /* Reuse the existing horizontal-menu mobile action as the persistent desktop
   * conversion CTA once the section navigation reaches its sticky position.
   * The action stays out of normal flow above the fold because the hero already
   * exposes the same conversion path there. */
  body.single-program .jci-long-program__nav-bar.is-visually-sticky .jci-horizontal-menu__mobile-action {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 34px;
    margin-right: 0;
    margin-left: 12px;
    padding: 0 16px;
    border: 1px solid var(--color-brand-blue, #487cff);
    border-radius: 8px;
    background: var(--color-brand-blue, #487cff);
    color: #fff;
    font-family: "DM Sans", sans-serif;
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
    transition:
      background-color 160ms ease,
      border-color 160ms ease,
      color 160ms ease;
  }

  body.single-program .jci-long-program__nav-bar.is-visually-sticky .jci-horizontal-menu__arrow--next {
    margin-right: 30px;
  }

  body.single-program .jci-long-program__nav-bar.is-visually-sticky .jci-horizontal-menu__mobile-action-icon {
    display: block;
    flex: 0 0 28px;
    width: 28px;
    min-width: 28px;
    max-width: 28px;
    height: auto;
    max-height: 14px;
    margin: 0;
    object-fit: contain;
    filter: brightness(0) invert(1);
    transition: transform 160ms ease;
  }

  body.single-program .jci-long-program__nav-bar.is-visually-sticky .jci-horizontal-menu__mobile-action:hover,
  body.single-program .jci-long-program__nav-bar.is-visually-sticky .jci-horizontal-menu__mobile-action:focus-visible {
    border-color: #2f68ff;
    background: #2f68ff;
    color: #fff;
  }

  body.single-program .jci-long-program__nav-bar.is-visually-sticky .jci-horizontal-menu__mobile-action:hover .jci-horizontal-menu__mobile-action-icon,
  body.single-program .jci-long-program__nav-bar.is-visually-sticky .jci-horizontal-menu__mobile-action:focus-visible .jci-horizontal-menu__mobile-action-icon {
    transform: translateX(4px);
  }

  body.single-program .jci-long-program__nav-bar.is-visually-sticky .jci-horizontal-menu__mobile-action:focus-visible {
    outline: 2px solid var(--color-brand-blue, #487cff);
    outline-offset: 2px;
  }
}

@media (max-width: 768px) {
  body.single-program .jci-long-program__nav-link--utility {
    font-weight: 600;
  }
}

body.single-program .jci-long-program #topshr[data-jci-program-hero-static="true"] {
  position: relative !important;
  top: auto !important;
  z-index: 1 !important;
  box-shadow: none !important;
  transform: none !important;
}

body.single-program .jci-long-program [data-jci-long-program-panel][hidden] {
  display: none !important;
}

body.single-program .jci-program-introduction-gallery > .row {
  display: flex;
  align-items: stretch;
  margin-top:50px;
}

body.single-program .jci-program-introduction-gallery__item {
  display: flex;
}

body.single-program .jci-program-introduction-gallery__media {
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
}

body.single-program .jci-program-introduction-gallery__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

body.single-program .jci-profile-students,
body.single-program .jci-faculty-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 32px;
  margin: 0;
  padding: 0;
  list-style: none;
}

body.single-program .jci-profile-students__item,
body.single-program .jci-faculty-list__item {
  min-width: 0;
  border-top: 1px solid currentColor;
  padding: 14px 0;
}

body.single-program .jci-faculty-list__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

body.single-program .jci-faculty-list__link:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 4px;
}


/* Section testimonials use the compact two-column treatment from the approved layouts. */
body.single-program .jci-long-program-testimonial .jci-testimonial--wide {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: stretch;
  width: 100%;
  margin: 0;
  background: #f2f0f0;
}

body.single-program .jci-long-program-testimonial .jci-testimonial--wide > [class*="col-"] {
  width: 100%;
  max-width: none;
  min-width: 0;
  padding: 0;
}

body.single-program .jci-long-program-testimonial .jci-testimonial--wide img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 240px;
  max-height: 360px;
  object-fit: cover;
}

body.single-program .jci-long-program-testimonial .fotografia-desc-big2,
body.single-program .jci-long-program-testimonial .fotografia-desc-big {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 100%;
  margin: 0;
  padding: clamp(28px, 4vw, 56px);
  background: #f2f0f0;
}

body.single-program .jci-long-program-talent .jci-testimonial-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(18px, 2.3vw, 32px);
  width: 100%;
  margin-right: 0;
  margin-left: 0;
}

body.single-program .jci-long-program-talent .jci-testimonial--grid {
  width: auto;
  max-width: none;
  min-width: 0;
  padding: 0;
}

body.single-program .jci-long-program-talent .jci-testimonial--grid > .jci-testimonial__media {
  aspect-ratio: 16 / 10;
  overflow: hidden;
}

body.single-program .jci-long-program-talent .jci-testimonial--grid > .jci-testimonial__media img {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  object-fit: cover;
}

body.single-program .jci-long-program-talent .jci-testimonial--grid .card-description {
  margin: 0;
  padding: 14px 0 0;
}

@media (max-width: 768px) {
  body.single-program .jci-program-introduction-gallery > .row {
    display: block;
  }

  body.single-program .jci-program-introduction-gallery__item + .jci-program-introduction-gallery__item {
    margin-top: 12px;
  }

  body.single-program .jci-profile-students,
  body.single-program .jci-faculty-list {
    grid-template-columns: 1fr;
  }


  body.single-program .jci-long-program-testimonial .jci-testimonial--wide {
    grid-template-columns: 1fr;
  }

  body.single-program .jci-long-program-testimonial .jci-testimonial--wide img {
    min-height: 0;
    max-height: none;
    aspect-ratio: 16 / 10;
  }

  body.single-program .jci-long-program-talent .jci-testimonial-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }
}

/* --------------------------------------------------------------------------
 * Long Program layout alignment v1.5
 * Reuses the existing Program partials and shared testimonial/video components.
 * -------------------------------------------------------------------------- */

:is(body.single-program, body.jci-pedagogical-model-page) .jci-long-program-section {
  padding-bottom: clamp(56px, 7vw, 96px);
}

:is(body.single-program, body.jci-pedagogical-model-page) .jci-long-program-section > :first-child {
  margin-top: clamp(40px, 5vw, 64px);
}

body.single-program .jci-program-introduction__lead,
body.single-program .jci-long-program-objectives__layout,
body.single-program .jci-long-program-model__lead,
body.single-program .jci-long-program-career__lead,
body.single-program .jci-long-program-admission__overview {
  align-items: start;
}

body.jci-pedagogical-model-page .jci-long-program-model__lead {
  align-items: start;
}

/* Introduction: readable body column and clearly secondary testimonial. */
body.single-program .jci-program-introduction__lead {
  display: grid;
  margin-right: 0;
  margin-left: 0;
  grid-template-columns: minmax(0, 7fr) minmax(280px, 5fr);
  gap: clamp(24px, 3vw, 40px);
}

body.single-program .jci-program-introduction__lead > .col-7,
body.single-program .jci-program-introduction__lead > .col-5,
body.single-program .jci-program-introduction__lead > .col-12 {
  width: 100%;
  max-width: none;
  min-width: 0;
  padding-right: 0;
  padding-left: 0;
}

body.single-program .jci-program-introduction__lead > .col-7 > *,
body.single-program .jci-program-introduction__lead > .col-12 > * {
  max-width: 68ch;
}

/* Basic information uses the shared Course/Program component in program-hero.css.
 * Long Programs only own their section-to-section spacing here. */
body.single-program .jci-long-program .jci-program-basic-information {
  margin-top: 60px;
}

/* Introduction gallery uses the panoramic proportions from the approved page. */
body.single-program .jci-program-introduction-gallery__media {
  aspect-ratio: 16 / 10;
}

/* Compact section testimonials. The shared component remains the only renderer. */
body.single-program .jci-long-program-testimonial--compact {
  width: min(100%, 980px);
  margin-right: auto;
  margin-left: auto;
}

body.single-program .jci-long-program-testimonial--compact .jci-testimonial--wide {
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  min-height: 260px;
}

body.single-program .jci-long-program-testimonial--compact .jci-testimonial--wide img {
  min-height: 260px;
  max-height: 300px;
  aspect-ratio: 16 / 10;
}

body.single-program .jci-long-program-testimonial--compact .fotografia-desc-big2,
body.single-program .jci-long-program-testimonial--compact .fotografia-desc-big {
  padding: clamp(26px, 3.5vw, 44px);
}

body.single-program .jci-long-program-testimonial--profile {
  width: 100%;
  margin-right: auto;
  margin-left: auto;
}

/* Objectives: clearer two-column editorial hierarchy without card treatment. */
body.single-program .jci-long-program-objectives__layout {
  display: grid;
  margin-right: 0;
  margin-left: 0;
  grid-template-columns: minmax(0, 0.86fr) minmax(0, 1.14fr);
  gap: clamp(48px, 6vw, 88px);
  align-items: start;
}

body.single-program .jci-long-program-objectives__layout > .col-5,
body.single-program .jci-long-program-objectives__layout > .col-7 {
  width: 100%;
  max-width: none;
  min-width: 0;
  padding-right: 0;
  padding-left: 0;
}

/* Reuse the established media-frame pattern without clipping the heading/title
 * that share the left editorial column with the Objectives image. */
body.single-program .jci-long-program-objectives__media {
  width: 100%;
  aspect-ratio: 16 / 10;
  overflow: hidden;
}

body.single-program .jci-long-program-objectives__media img {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  object-fit: cover;
  object-position: center;
}

body.single-program .jci-long-program-objectives__layout > .col-7 > .font18 {
  max-width: 66ch;
  margin-top: clamp(56px, 5vw, 76px);
  font-size: 16px;
  line-height: 1.6;
}

body.single-program .jci-long-program-objectives__list-title,
:is(body.single-program, body.jci-pedagogical-model-page) .jci-long-program-model__methods-title {
  margin: clamp(28px, 3vw, 40px) 0 20px;
  font-size: clamp(18px, 1.35vw, 20px);
  font-weight: 700;
  line-height: 1.3;
}

body.single-program .jci-long-program-objectives .numbers {
  display: grid;
  gap: 14px;
  max-width: 700px;
  margin-top: 0;
}

body.single-program .jci-long-program-objectives .numbers li {
  min-height: 0;
  margin: 0;
  padding: 2px 0;
  border: 0;
  break-inside: avoid;
  line-height: 1.5;
}

/* Pedagogical model: one clear lead followed by a balanced editorial grid. */
:is(body.single-program, body.jci-pedagogical-model-page) .jci-long-program-model__lead {
  display: grid;
  margin-right: 0;
  margin-left: 0;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: clamp(48px, 6vw, 88px);
  align-items: start;
}

:is(body.single-program, body.jci-pedagogical-model-page) .jci-long-program-model__lead > .col-5 {
  width: 100%;
  max-width: none;
  min-width: 0;
  padding-right: 0;
  padding-left: 0;
}

/* Only the media column is a cropped 16:10 frame. The copy column must remain
 * content-driven so long Pedagogical model descriptions are never clipped. */
:is(body.single-program, body.jci-pedagogical-model-page) .jci-long-program-model__lead > .col-5:first-child {
  aspect-ratio: 16 / 10;
  overflow: hidden;
}

:is(body.single-program, body.jci-pedagogical-model-page) .jci-long-program-model__lead img {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  object-fit: cover;
  object-position: center;
}

:is(body.single-program, body.jci-pedagogical-model-page) .jci-long-program-model__lead .font18 {
  max-width: 66ch;
  font-size: 16px;
  line-height: 1.6;
}

@media (min-width: 769px) {
  :is(body.single-program, body.jci-pedagogical-model-page) .jci-long-program-model__lead > .col-5:last-child .font18 {
    width: 62%;
    max-width: 42ch;
  }
}

:is(body.single-program, body.jci-pedagogical-model-page) .jci-long-program-model__methods {
  margin-right: 0;
  margin-left: 0;
}

:is(body.single-program, body.jci-pedagogical-model-page) .jci-long-program-model__methods > .col-9 {
  width: 100%;
  max-width: none;
  min-width: 0;
  padding-right: 0;
  padding-left: 0;
}

@media (min-width: 769px) {
  body.single-program .jci-long-program-model__methods {
    margin-top: clamp(20px, 2vw, 28px);
  }

  body.single-program .jci-long-program-model__methods-title {
    margin-top: 0;
  }

  body.single-program .jci-long-program-model__methods > .col-9 {
    width: 75%;
    max-width: 75%;
  }
}

:is(body.single-program, body.jci-pedagogical-model-page) .jci-long-program-model__content {
  column-count: 2;
  column-gap: clamp(48px, 6vw, 88px);
}

/* Legacy Pedagogical model content is editorial copy, not a card grid. Keep it
 * in one readable measure so lists such as Benefits are not split into
 * disconnected CSS columns. The repeater-driven topics keep their grid below. */
:is(body.single-program, body.jci-pedagogical-model-page) .jci-long-program-model__content:not(.jci-long-program-model__content--topics) {
  max-width: 66ch;
  column-count: 1;
}

:is(body.single-program, body.jci-pedagogical-model-page) .jci-long-program-model__content > * {
  break-inside: avoid;
}

:is(body.single-program, body.jci-pedagogical-model-page) .jci-long-program-model__content :is(ul, ol) {
  margin: 0;
  padding-left: 1.25em;
}

:is(body.single-program, body.jci-pedagogical-model-page) .jci-long-program-model__content li {
  font-size: 14px;
  line-height: 1.55;
}

:is(body.single-program, body.jci-pedagogical-model-page) .jci-long-program-model__content li + li {
  margin-top: 6px;
}

:is(body.single-program, body.jci-pedagogical-model-page) .jci-long-program-model__content--topics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(34px, 4vw, 48px) clamp(48px, 6vw, 88px);
  column-count: auto;
}

:is(body.single-program, body.jci-pedagogical-model-page) .jci-long-program-model__content--topics > * {
  min-width: 0;
  grid-column: auto;
  grid-row: auto;
}

:is(body.single-program, body.jci-pedagogical-model-page) .jci-long-program-model__content p {
  margin-top: 0;
  margin-bottom: 0;
  font-size: 14px;
  line-height: 1.6;
}

:is(body.single-program, body.jci-pedagogical-model-page) .jci-long-program-model__content strong,
:is(body.single-program, body.jci-pedagogical-model-page) .jci-long-program-model__content h2,
:is(body.single-program, body.jci-pedagogical-model-page) .jci-long-program-model__content h3,
:is(body.single-program, body.jci-pedagogical-model-page) .jci-long-program-model__content h4 {
  margin: 0 0 8px;
  padding-bottom: 0;
  color: var(--bs-body-color);
  font-size: clamp(17px, 1.25vw, 19px);
  font-weight: 700;
  line-height: 1.3;
  text-transform: none;
}

/* Career opportunities: strengthen the commercial argument without card chrome. */
body.single-program .jci-long-program-career__lead {
  display: grid;
  margin-right: 0;
  margin-left: 0;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  gap: clamp(48px, 6vw, 88px);
  align-items: start;
}

body.single-program .jci-long-program-career__lead > .col-6 {
  width: 100%;
  max-width: none;
  min-width: 0;
  padding-right: 0;
  padding-left: 0;
}

body.single-program .jci-long-program-career__lead .font40 {
  max-width: 15ch;
}

body.single-program .jci-long-program-career__lead .font18,
body.single-program .jci-long-program-career__content {
  max-width: 66ch;
  font-size: 16px;
  line-height: 1.6;
}

body.single-program .jci-long-program-career__lead img,
body.single-program .jci-long-program-career__image {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
  object-position: center;
}

body.single-program .jci-long-program-career .one-by-one-two-columns-news {
  margin-top: clamp(36px, 4vw, 52px);
  margin-right: 0;
  margin-left: 0;
}

body.single-program .jci-long-program-career .one-by-one-two-columns-news > .col-10 {
  width: 100%;
  max-width: none;
}

body.single-program .jci-long-program-career .one-by-one-two-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 clamp(48px, 6vw, 88px);
  width: 100%;
}

body.single-program .jci-long-program-career .one-by-one-two-columns > .column {
  display: contents;
}

body.single-program .jci-long-program-career .one-by-one-two-columns > .column > div {
  min-width: 0;
  padding: 24px 0 28px;
  border-top: 1px solid rgba(4, 28, 64, 0.18);
}

body.single-program .jci-long-program-career .one-by-one-two-columns .title {
  margin: 0 0 9px;
  padding: 0;
  color: var(--bs-body-color);
  font-size: clamp(17px, 1.2vw, 19px);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0;
  text-transform: none;
}

body.single-program .jci-long-program-career .one-by-one-two-columns .content {
  margin: 0;
  color: var(--bs-body-color);
  font-size: 14px;
  line-height: 1.6;
}

body.single-program .jci-long-program-career .one-by-one-two-columns .content > :first-child {
  margin-top: 0;
}

body.single-program .jci-long-program-career .one-by-one-two-columns .content > :last-child {
  margin-bottom: 0;
}

body.single-program .jci-long-program-career__content {
  margin-top: 20px;
  column-count: 1;
  column-gap: 0;
}

body.single-program .jci-long-program-career__content p,
body.single-program .jci-long-program-career__content ul,
body.single-program .jci-long-program-career__content ol {
  break-inside: avoid;
}

body.single-program .jci-long-program-career__note {
  margin-top: clamp(56px, 5vw, 72px);
  margin-bottom: clamp(72px, 7vw, 112px);
}

body.single-program .jci-long-program-career__note-text {
  width: min(66.6667%, 920px);
  margin: 0;
  color: var(--bs-body-color);
  font-family: "DM Sans", sans-serif;
  font-size: clamp(32px, 2.8vw, 40px);
  font-weight: 400;
  line-height: 1.25;
  letter-spacing: 0;
  text-align: left;
  text-transform: none;
}

body.single-program .jci-long-program-career__partners {
  border-top: 1px solid rgba(4, 28, 64, 0.18);
  border-bottom: 1px solid rgba(4, 28, 64, 0.18);
  text-align: center;
}

body.single-program .jci-long-program-career__partners-kicker {
  padding-top: clamp(30px, 4vw, 46px);
  font-size: 16px;
  font-weight: 600;
  line-height: 1.35;
}

body.single-program .jci-long-program-career__partners-title {
  margin-top: 12px;
  color: #487cff;
  font-family: var(--font-rama-e, "rama-slab-e", Georgia, serif);
  font-size: clamp(44px, 4.2vw, 60px);
  font-weight: 700;
  line-height: 1.0833;
  letter-spacing: 0;
  text-transform: none;
}

body.single-program .jci-long-program-career__partners .jci-career-partners-slider {
  position: relative;
  margin: 28px 0 32px;
  padding: 0 44px;
}

body.single-program .jci-long-program-career__partners .jci-career-partners-slider__viewport {
  min-width: 0;
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-x: contain;
  scroll-behavior: auto;
  scroll-snap-type: none;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

body.single-program .jci-long-program-career__partners .jci-career-partners-slider__viewport::-webkit-scrollbar {
  display: none;
}

body.single-program .jci-long-program-career__partners .jci-career-partners {
  display: flex;
  width: max-content;
  align-items: center;
  gap: 48px;
  margin: 0;
}

body.single-program .jci-long-program-career__partners .jci-career-partners__item {
  display: flex;
  flex: 0 0 auto;
  min-width: 0;
  min-height: 88px;
  align-items: center;
  justify-content: center;
  scroll-snap-align: none;
  scroll-snap-stop: normal;
}

body.single-program .jci-long-program-career__partners .jci-career-partners img {
  display: block;
  width: auto;
  height: auto;
  max-width: 180px;
  max-height: 68px;
  margin: 0;
  object-fit: contain;
  opacity: 0.68;
  filter: grayscale(1);
  transition: filter 180ms ease, opacity 180ms ease;
}

body.single-program .jci-long-program-career__partners .jci-career-partners__item:hover img {
  opacity: 1;
  filter: grayscale(0);
}

body.single-program .jci-long-program-career__partners .jci-career-partners-slider__arrow {
  position: absolute;
  top: 50%;
  z-index: 2;
  display: inline-flex;
  width: 32px;
  height: 32px;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 1px solid rgba(4, 28, 64, 0.18);
  border-radius: 50%;
  background-color: #fff;
  cursor: pointer;
  transform: translateY(-50%);
  transition: border-color 0.2s ease, background-color 0.2s ease;
}

body.single-program .jci-long-program-career__partners .jci-career-partners-slider__arrow::before {
  content: "";
  display: block;
  width: 18px;
  height: 18px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23487cff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}

body.single-program .jci-long-program-career__partners .jci-career-partners-slider__arrow--prev {
  left: 0;
}

body.single-program .jci-long-program-career__partners .jci-career-partners-slider__arrow--prev::before {
  transform: rotate(180deg);
}

body.single-program .jci-long-program-career__partners .jci-career-partners-slider__arrow--next {
  right: 0;
}

body.single-program .jci-long-program-career__partners .jci-career-partners-slider__arrow:hover,
body.single-program .jci-long-program-career__partners .jci-career-partners-slider__arrow:focus-visible {
  border-color: #487cff;
  background-color: #f4f7ff;
  outline: none;
}

body.single-program .jci-long-program-career__partners .jci-career-partners-slider__arrow[hidden] {
  display: none;
}

body.single-program .jci-long-program-career__media {
  align-items: stretch;
}

body.single-program .jci-career-links {
  margin: 20px 0 0;
  padding: 0;
  list-style: none;
}

body.single-program .jci-career-links li {
  border-top: 1px solid rgba(4, 28, 64, 0.28);
}

body.single-program .jci-career-links li:last-child {
  border-bottom: 1px solid rgba(4, 28, 64, 0.28);
}

body.single-program .jci-career-links a {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 16px 0;
}

/* Talent grids are rendered in their own section so they work without JavaScript. */
body.single-program .jci-long-program-talent {
  margin-top: clamp(56px, 7vw, 88px);
}

body.single-program .jci-long-program-talent--faculty .jci-testimonial-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* Participant profile. */
body.single-program .jci-long-program-profile__hero {
  padding-bottom: clamp(300px, 24vw, 360px);
}

body.single-program .jci-long-program-profile__hero-inner > h2,
body.single-program .jci-long-program-profile__hero-inner > p,
body.single-program .jci-long-program-profile__hero-inner > div:not(.jci-long-program-profile__video) {
  max-width: 980px;
}

body.single-program .jci-long-program-profile__description {
  font-size: 18px;
  line-height: 1.45;
}

body.single-program .jci-long-program-profile__description p {
  color: inherit;
  font-size: inherit;
  line-height: inherit;
}

/* Legacy global li color must not override copy placed on the blue Participant
 * profile surface. Keep list copy and its markers on the inherited white axis. */
body.single-program .jci-long-program-profile__description :is(ul, ol, li),
body.single-program .jci-long-program-profile__description li::marker {
  color: inherit;
}

body.single-program .jci-long-program-profile__video {
  margin-top: 32px;
}

body.single-program .jci-long-program-profile__video .jci-video-facade {
  width: 100%;
  max-width: none;
}

body.single-program .jci-long-program-profile__content {
  position: relative;
  z-index: 2;
  margin-top: clamp(-330px, -22vw, -270px);
  padding: clamp(48px, 5vw, 72px);
}

body.single-program .jci-long-program-profile__content > p {
  margin-top: clamp(48px, 6vw, 70px);
}

body.single-program .jci-long-program-testimonial--profile .jci-testimonial__quote {
  margin: 0;
  font-weight: 400;
}

body.single-program .jci-long-program-testimonial--profile .jci-testimonial__attribution {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin: clamp(28px, 3vw, 44px) 0 0;
  font-size: 18px;
  line-height: 1.35;
}

body.single-program .jci-long-program-testimonial--profile .jci-testimonial__attribution strong {
  margin-bottom: 2px;
  font-weight: 700;
}

body.single-program .jci-long-program-profile__content #member-list.member-list {
  width: 100%;
  margin-top: clamp(72px, 7vw, 110px);
  padding-left: calc(260px + clamp(56px, 5vw, 80px));
  gap: 24px;
}

body.single-program .jci-long-program-profile__content #member-list.member-list > p {
  margin: 0;
}

body.single-program .jci-profile-students__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

body.single-program .jci-profile-students__arrow {
  width: 24px;
  height: 24px;
  object-fit: contain;
  transform: rotate(-45deg);
}

body.single-program .jci-long-program-profile__classroom .video-wrapper {
  margin-top: 24px;
}

body.single-program .jci-long-program-profile__classroom .jci-video-facade {
  width: 100%;
  max-width: none;
}

/* Faculty. */
body.single-program .jci-long-program-faculty__hero {
  padding-bottom: clamp(72px, 8vw, 112px);
}

body.single-program .jci-long-program-faculty__hero-inner .row {
  align-items: center;
}

body.single-program .jci-long-program-faculty__video .jci-video-facade {
  width: 100%;
  max-width: none;
}

body.single-program .jci-long-program-faculty__members {
  position: relative;
  z-index: 2;
  margin-top: clamp(-70px, -5vw, -48px);
  padding: clamp(30px, 4vw, 52px);
  background: #fff;
}

body.single-program .jci-faculty-list__item {
  padding: 0;
}

body.single-program .jci-faculty-list__link {
  min-height: 48px;
  padding: 10px 0;
  color: inherit;
  text-decoration: none;
}

body.single-program .jci-faculty-list__link--static {
  cursor: default;
}

/* Faculty members and Participant profile Alumni share the same list
 * component, so their link arrows use one canonical treatment. */
body.single-program .jci-faculty-list__link .fletxa {
  transform: rotate(-130deg);
  transform-origin: center;
  transition: transform 180ms cubic-bezier(0.22, 1, 0.36, 1);
}

body.single-program a.jci-faculty-list__link:hover .fletxa,
body.single-program a.jci-faculty-list__link:focus-visible .fletxa {
  transform: rotate(-90deg);
}

/* Admission: flexible editorial sections share one spacing system beside the media column. */
body.single-program .jci-long-program-admission__intro > .col-6 {
  max-width: 680px;
}

body.single-program .jci-long-program-admission__overview {
  position: relative;
  z-index: 2;
  display: grid;
  margin-right: 0;
  margin-left: 0;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 1fr);
  gap: clamp(44px, 5vw, 72px);
  align-items: start;
}

body.single-program .jci-long-program-admission__overview > .col-6 {
  width: 100%;
  max-width: none;
  min-width: 0;
  padding-right: 0;
  padding-left: 0;
}

body.single-program .jci-long-program-admission__sections {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 clamp(32px, 3vw, 52px);
}

body.single-program .jci-long-program-admission__details section + section {
  margin-top: 30px;
}

body.single-program .jci-long-program-admission__details h3 {
  margin: 0 0 8px;
  color: var(--bs-body-color);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.25;
  text-transform: uppercase;
}

body.single-program .jci-long-program-admission__details section > div {
  font-size: 14px;
  line-height: 1.55;
}

body.single-program .jci-long-program-admission__details p {
  margin: 0 0 12px;
  font-size: inherit;
  line-height: inherit;
}

body.single-program .jci-long-program-admission__details section > div > :first-child {
  margin-top: 0;
}

body.single-program .jci-long-program-admission__details section > div > :last-child {
  margin-bottom: 0;
}

/* Requirements copy can contain bold inline subheads. Promote them to a
 * compact subheading without inheriting wpautop's extra <br> line. */
body.single-program .jci-long-program-admission__details section > div p > strong:first-child {
  display: block;
  margin: 20px 0 6px;
  line-height: 1.25;
}

body.single-program .jci-long-program-admission__details section > div p > strong:first-child + br {
  display: none;
}

body.single-program .jci-long-program-admission__details section > div p:first-child > strong:first-child {
  margin-top: 0;
}

body.single-program .jci-long-program-admission__images {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding-left: 0;
}

body.single-program .jci-long-program-admission__image {
  display: block;
  max-width: 100%;
  height: auto;
  object-fit: contain;
}

body.single-program .jci-long-program-admission__image--primary {
  width: 100%;
}

body.single-program .jci-long-program-admission__image--secondary {
  width: 58%;
  margin-top: clamp(28px, 4vw, 48px);
  align-self: flex-end;
}

body.single-program .jci-long-program-admission__process {
  position: relative;
  z-index: 1;
  background: #f1efef;
}

body.single-program .jci-long-program-admission__process > .jci-container--program {
  padding-top: clamp(44px, 5vw, 64px);
  padding-bottom: clamp(44px, 5vw, 64px);
}

body.single-program .jci-long-program-admission__process-header {
  max-width: 620px;
}

body.single-program .jci-long-program-admission__process-header h2 {
  margin: 0 0 8px;
  color: #487cff;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.25;
  text-transform: uppercase;
}

body.single-program .jci-long-program-admission__process-header p {
  margin: 0;
  max-width: 62ch;
}

body.single-program .jci-long-program-admission__steps {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(28px, 4vw, 52px);
  margin: clamp(28px, 3.5vw, 40px) 0 0;
  padding: 0;
  list-style: none;
}

body.single-program .jci-long-program-admission__steps li {
  min-width: 0;
}

body.single-program .jci-long-program-admission__step-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border: 2px solid #487cff;
  border-radius: 50%;
  color: #487cff;
  font-size: 20px;
  line-height: 1;
}

body.single-program .jci-long-program-admission__steps h3 {
  margin: 18px 0 8px;
  color: var(--bs-body-color);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.3;
}

body.single-program .jci-long-program-admission__steps p {
  margin: 0;
  font-size: 13px;
  line-height: 1.55;
}

/* Reuse the visible inline-link treatment already used in Program content. */
body.single-program .jci-long-program-admission__steps a {
  color: inherit;
  text-decoration-line: underline;
  text-decoration-color: rgba(17, 17, 17, 0.35);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.16em;
}

body.single-program .jci-long-program-admission__steps a:hover,
body.single-program .jci-long-program-admission__steps a:focus-visible {
  text-decoration-color: currentColor;
}

body.single-program .jci-long-program-admission__pre-enrollment {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  gap: 24px;
  align-items: center;
  margin-top: clamp(36px, 5vw, 58px);
  padding: 22px 28px;
  border-radius: 18px;
  background: #fff;
}

body.single-program .jci-long-program-admission__pre-enrollment p {
  margin: 0;
  color: #487cff;
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
}

body.single-program .jci-long-program-admission__pre-enrollment .btn1 {
  width: fit-content;
  margin: 0;
  font-size: 14px;
}

@media (min-width: 769px) {
  body.single-program .jci-long-program-admission__pre-enrollment > .font30 {
    text-align: center;
  }

  body.single-program .jci-long-program-admission__pre-enrollment > .rightalign {
    justify-self: end;
  }
}

body.single-program .jci-long-program-admission .jci-new-talent {
  padding-top: clamp(64px, 7vw, 96px);
  padding-bottom: clamp(24px, 3vw, 36px);
}

@media (min-width: 769px) {
  body.single-program .jci-long-program.jci-long-program--continuous .jci-long-program-admission {
    padding-bottom: 0;
  }
}

body.single-program .jci-long-program-admission .our-talent__title {
  margin-bottom: clamp(24px, 3vw, 36px);
}

/*
 * Introduction testimonial.
 * Keep the shared renderer, but give the quote enough visual weight to read as
 * editorial evidence rather than a second body-copy column.
 */
body.single-program .jci-program-introduction .jci-testimonial--intro > img.jci-testimonial__intro-image {
  display: block;
  width: 100%;
  max-width: 286px;
  height: auto;
  aspect-ratio: 1.08;
  object-fit: cover;
  object-position: center;
}

body.single-program .jci-program-introduction .jci-testimonial--intro {
  min-width: 0;
}

body.single-program .jci-program-introduction .jci-testimonial__intro-content {
  position: relative;
  top: -36px;
  left: 24px;
  max-width: 380px;
  margin: 0;
  padding: 26px 28px;
  background: #fff;
}

body.single-program .jci-program-introduction .jci-testimonial__intro-quote {
  margin: 0 0 20px;
  padding: 0;
  border: 0;
}

body.single-program .jci-program-introduction .jci-testimonial__intro-quote p {
  margin: 0;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.45;
}

body.single-program .jci-program-introduction .jci-testimonial__intro-attribution {
  display: grid;
  gap: 3px;
  margin: 0;
  color: #46546a;
  font-size: 13px;
  line-height: 1.45;
}

body.single-program .jci-program-introduction .jci-testimonial__intro-attribution strong {
  color: var(--bs-body-color);
  font-size: 14px;
}

body.single-program .jci-program-introduction .jci-testimonial__intro-attribution > * {
  display: block;
}

/* Dedicated testimonial markup avoids legacy row/column rules changing its scale. */
body.single-program .jci-long-program-testimonial:not(.jci-long-program-testimonial--profile) .jci-testimonial__media,
body.single-program .jci-long-program-testimonial--profile .jci-testimonial__media {
  min-width: 0;
  overflow: hidden;
}

body.single-program .jci-long-program-testimonial:not(.jci-long-program-testimonial--profile) .jci-testimonial__media img,
body.single-program .jci-long-program-testimonial--profile .jci-testimonial__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

body.single-program .jci-long-program-testimonial .jci-testimonial__content,
body.single-program .jci-long-program-testimonial--profile .jci-testimonial__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  min-height: 100%;
  padding: clamp(26px, 3.5vw, 44px);
  background: #f2f0f0;
}

body.single-program .jci-long-program-testimonial .jci-testimonial__quote,
body.single-program .jci-long-program-testimonial .jci-testimonial__attribution,
body.single-program .jci-long-program-testimonial--profile .jci-testimonial__quote,
body.single-program .jci-long-program-testimonial--profile .jci-testimonial__attribution {
  margin: 0;
}

body.single-program .jci-long-program-testimonial .jci-testimonial__attribution,
body.single-program .jci-long-program-testimonial--profile .jci-testimonial__attribution {
  margin-top: 24px;
}

body.single-program .jci-long-program-testimonial--compact .jci-testimonial--wide-gray {
  display: grid !important;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr) !important;
  width: 100% !important;
  min-height: 250px;
  max-height: 310px;
  margin: 0 !important;
  overflow: hidden;
  background: #f2f0f0;
}

body.single-program .jci-long-program-testimonial--profile .jci-testimonial--profile {
  display: grid;
  grid-template-columns: minmax(260px, 0.68fr) minmax(0, 2fr);
  gap: clamp(56px, 5vw, 80px);
  align-items: start;
  width: 100%;
  min-height: 0;
  max-height: none;
  margin: 0;
  overflow: visible;
  background: #fff;
}

body.single-program .jci-long-program-testimonial--profile .jci-testimonial__media {
  aspect-ratio: 1.08 / 1;
}

body.single-program .jci-long-program-testimonial--profile .jci-testimonial__media img {
  height: 100%;
  min-height: 0;
  max-height: none;
  aspect-ratio: auto;
  object-fit: cover;
  object-position: center;
}

body.single-program .jci-long-program-testimonial--profile .jci-testimonial__attribution {
  margin-top: clamp(28px, 3vw, 44px);
}

body.single-program .jci-long-program-testimonial--profile .jci-testimonial__content {
  justify-content: flex-start;
  min-height: 0;
  background: #fff;
}

@media (min-width: 769px) {
  body.single-program .jci-long-program-profile__content {
    --jci-profile-media-column: minmax(260px, 0.68fr);
    --jci-profile-copy-column: minmax(0, 2fr);
    --jci-profile-column-gap: clamp(56px, 5vw, 80px);
    display: grid;
    grid-template-columns: var(--jci-profile-media-column) var(--jci-profile-copy-column);
    column-gap: var(--jci-profile-column-gap);
    align-items: start;
  }

  body.single-program .jci-long-program-testimonial--profile {
    grid-column: 1 / -1;
  }

  body.single-program .jci-long-program-testimonial--profile .jci-testimonial--profile {
    grid-template-columns: var(--jci-profile-media-column) var(--jci-profile-copy-column);
    gap: var(--jci-profile-column-gap);
  }

  body.single-program .jci-long-program-testimonial--profile .jci-testimonial__content {
    padding: 0;
  }

  body.single-program .jci-long-program-profile__content #member-list.member-list {
    grid-column: 2;
    width: 100%;
    margin-top: clamp(32px, 4vw, 48px);
    padding-left: 0;
  }
}

body.single-program .jci-long-program-talent .jci-testimonial-grid {
  margin-top: 20px;
}

body.single-program .jci-long-program-talent .jci-testimonial--grid {
  display: block;
}


@media (prefers-reduced-motion: reduce) {
  body.single-program .jci-long-program-career__partners .jci-career-partners-slider__viewport {
    scroll-behavior: auto;
  }

  body.single-program .jci-faculty-list__link .fletxa,
  body.single-program .jci-long-program-admission__pre-enrollment .btn1 img.fletxa2 {
    transition: none;
  }
}

@media (max-width: 900px) {
  :is(body.single-program, body.jci-pedagogical-model-page) .jci-long-program-model__content,
  body.single-program .jci-long-program-career__content {
    column-count: 1;
  }

  :is(body.single-program, body.jci-pedagogical-model-page) .jci-long-program-model__content--topics {
    grid-template-columns: 1fr;
  }

  :is(body.single-program, body.jci-pedagogical-model-page) .jci-long-program-model__content--topics > * {
    grid-column: auto;
    grid-row: auto;
  }

  body.single-program .jci-long-program-career__partners .jci-career-partners-slider {
    padding-inline: 38px;
  }

  body.single-program .jci-long-program-career__partners .jci-career-partners {
    gap: 32px;
  }

  body.single-program .jci-long-program-career__partners .jci-career-partners-slider__arrow {
    width: 30px;
    height: 30px;
  }

  body.single-program .jci-long-program-admission__steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 768px) {
  body.single-program .jci-program-introduction .jci-testimonial--intro {
    width: 100%;
    margin: 0;
  }

  body.single-program .jci-program-introduction .jci-testimonial--intro > img.jci-testimonial__intro-image {
    width: 100%;
    max-width: none;
    height: auto;
    aspect-ratio: auto;
    object-fit: contain;
    object-position: center top;
  }

  body.single-program .jci-program-introduction .jci-testimonial__intro-content {
    position: static;
    width: 100%;
    max-width: none;
    margin: 14px 0 0;
    padding: 0;
    background: transparent;
  }

  body.single-program .jci-program-introduction .jci-testimonial__intro-quote {
    margin-bottom: 14px;
  }

  body.single-program .jci-program-introduction .jci-testimonial__intro-quote p {
    font-size: 16px;
    font-weight: 700;
    line-height: 1.42;
  }

  body.single-program .jci-program-introduction .jci-testimonial__intro-attribution {
    font-size: 14px;
    line-height: 1.45;
  }

  body.single-program .jci-program-introduction__lead > .col-7 > *,
  body.single-program .jci-program-introduction__lead > .col-12 > * {
    max-width: none;
  }

  body.single-program .jci-long-program-testimonial--compact .jci-testimonial--wide-gray {
    grid-template-columns: 1fr !important;
    max-height: none;
  }

  body.single-program .jci-long-program-testimonial:not(.jci-long-program-testimonial--profile) .jci-testimonial__media img {
    height: auto;
    aspect-ratio: 16 / 10;
  }

  body.single-program .jci-program-introduction-gallery__media {
    aspect-ratio: 16 / 10;
  }

  body.single-program .jci-long-program-testimonial--compact .jci-testimonial--wide {
    grid-template-columns: 1fr;
  }

  body.single-program .jci-long-program-testimonial--compact .jci-testimonial--wide img {
    max-height: none;
  }

  body.single-program .jci-long-program-talent--faculty .jci-testimonial-grid,
  body.single-program .jci-long-program-talent .jci-testimonial-grid {
    grid-template-columns: 1fr;
  }

  body.single-program .jci-long-program-faculty__members {
    margin-top: -34px;
  }

  body.single-program .jci-long-program-faculty__members {
    padding: 24px 18px;
  }

  body.single-program .jci-long-program-admission__images {
    padding-left: 0;
  }

  body.single-program .jci-long-program-admission__image--secondary {
    width: 70%;
  }

  body.single-program .jci-long-program-admission__steps {
    grid-template-columns: 1fr;
  }

  body.single-program .jci-long-program-admission__pre-enrollment {
    grid-template-columns: 1fr;
    padding: 20px;
  }
}

/* Long Program mobile layout system.
 *
 * The Program container remains the only horizontal layout owner. This block
 * defines one spacing/typography contract for every Long Program panel instead
 * of allowing each legacy partial to invent its own mobile rhythm. Internal
 * section-specific composition stays in the existing components and is refined
 * incrementally on top of these shared primitives. */
@media (max-width: 768px) {
  /* Shared header/secondary-navigation layering lives in
   * section-navigation.css. Long Program keeps only its content-specific mobile
   * geometry here. */
  body.jci-long-program-page .site-wrapper > main.site-main,
  body.jci-long-program-page main.site-main {
    overflow-x: visible !important;
  }

  body.single-program .jci-long-program {
    --jci-lp-space-1: 8px;
    --jci-lp-space-2: 16px;
    --jci-lp-space-3: 24px;
    --jci-lp-space-4: 32px;
    --jci-lp-space-5: 48px;
    --jci-long-program-section-space: var(--jci-lp-space-5);
    --jci-long-program-content-space: var(--jci-lp-space-3);
    --jci-program-keys-section-space: var(--jci-long-program-section-space);
    --jci-program-keys-content-space: var(--jci-lp-space-3);
    --jci-program-keys-title-space: var(--jci-lp-space-1);
  }

  /* Mobile disclosure geometry and active-item treatment are shared with
   * Program type and Courses listings in section-navigation.css. */

  body.single-program .jci-long-program-section {
    padding-bottom: var(--jci-lp-space-5);
  }

  body.single-program .jci-long-program-section > :first-child {
    margin-top: var(--jci-lp-space-4);
  }

  body.single-program .jci-long-program-section .jci-container--program {
    padding-inline: 0;
  }

  body.single-program .jci-long-program-section .rowmobile {
    display: block;
  }

  body.single-program .jci-long-program-section .col-xs-12 {
    width: 100%;
    max-width: 100%;
    padding-right: 0;
    padding-left: 0;
  }

  /* Shared section hierarchy: label -> editorial heading -> body. */
  body.single-program .jci-long-program-section .font26m,
  body.single-program .jci-long-program-section h2.black.medium {
    margin-top: 0;
    margin-bottom: 0;
    font-size: clamp(24px, 7vw, 30px);
    line-height: 1.08;
    letter-spacing: -0.015em;
  }

  body.single-program .jci-long-program-section .font35m,
  body.single-program .jci-long-program-section .font40m,
  body.single-program .jci-long-program-section .font40.medium,
  body.single-program .jci-long-program-section .font40.font35m {
    margin-top: var(--jci-lp-space-1);
    margin-bottom: 0;
    font-size: clamp(32px, 9vw, 40px);
    line-height: 1;
    letter-spacing: -0.02em;
  }

  body.single-program .jci-long-program-section .jci-faqs > h2 {
    font-size: clamp(26px, 7vw, 30px);
    line-height: 1.1;
    letter-spacing: -0.02em;
  }

  /* Keep the shared body-copy primitive deliberately low-specificity so
   * component-owned labels, statistics and accordion metadata can refine it
   * without an override race. */
  :where(body.single-program .jci-long-program-section) p,
  :where(body.single-program .jci-long-program-section) li {
    font-size: 16px;
    line-height: 1.55;
  }

  body.single-program .jci-program-introduction__lead,
  body.single-program .jci-long-program-objectives__layout,
  body.single-program .jci-long-program-model__lead,
  body.single-program .jci-long-program-career__lead,
  body.single-program .jci-long-program-admission__intro,
  body.single-program .jci-long-program-admission__overview {
    margin-top: var(--jci-lp-space-4);
  }

  body.single-program .jci-long-program-section > .jci-program-introduction__lead:first-child {
    margin-top: var(--jci-lp-space-3);
  }

  body.single-program .jci-program-introduction__lead > :first-child,
  body.single-program .jci-long-program-objectives__layout > :first-child,
  body.single-program .jci-long-program-model__lead > :first-child,
  body.single-program .jci-long-program-career__lead > :first-child {
    margin-bottom: var(--jci-lp-space-3);
  }

  body.single-program .jci-program-introduction-gallery {
    margin-top: var(--jci-lp-space-4);
  }

  body.single-program .jci-program-introduction-gallery__item + .jci-program-introduction-gallery__item {
    margin-top: var(--jci-lp-space-2);
  }

  /* Basic information keeps the Long Program section rhythm; the component
   * itself is shared with Course in program-hero.css. */
  body.single-program .jci-long-program .jci-program-basic-information {
    margin-top: var(--jci-long-program-section-space);
  }

  /* Objectives. */
  body.single-program .jci-long-program-objectives .numbers {
    margin-top: var(--jci-lp-space-3);
  }

  body.single-program .jci-long-program-objectives .numbers > * {
    min-height: 0;
    padding: 4px 0;
    border: 0;
  }

  /* Pedagogical model: no desktop columns survive on mobile. */
  body.single-program .jci-long-program-model__methods {
    margin-top: var(--jci-lp-space-4);
  }

  body.single-program .jci-long-program-model__content,
  body.single-program .jci-long-program-model__content--topics {
    display: block;
    columns: auto;
    column-count: auto;
  }

  body.single-program .jci-long-program-model__content--topics > * {
    display: block;
    grid-column: auto;
    grid-row: auto;
  }

  body.single-program .jci-long-program-model__content--topics > * + * {
    margin-top: var(--jci-lp-space-4);
    padding-top: 0;
    border: 0;
  }

  body.single-program .jci-long-program-model__content p {
    margin-bottom: 0;
  }

  /* Career opportunities: collapse legacy two-column content into one scan path. */
  body.single-program .jci-long-program-career__content,
  body.single-program .jci-long-program-career__media {
    margin-top: var(--jci-lp-space-3);
  }

  body.single-program .jci-long-program-career .one-by-one-two-columns {
    grid-template-columns: 1fr;
    gap: 0;
  }

  body.single-program .jci-long-program-career .one-by-one-two-columns > .column > div {
    padding: var(--jci-lp-space-3) 0 var(--jci-lp-space-4);
  }

  body.single-program .jci-long-program-career__note,
  body.single-program .jci-long-program-career__partners {
    margin-top: var(--jci-lp-space-4);
  }

  body.single-program .jci-long-program-career__note {
    margin-bottom: var(--jci-lp-space-4);
  }

  body.single-program .jci-long-program-career__note-text {
    width: 100%;
    font-size: 32px;
    line-height: 1.3125;
  }

  body.single-program .jci-long-program-career__partners {
    border-top-width: 1px;
    border-bottom-width: 1px;
  }

  body.single-program .jci-long-program-career__partners-kicker {
    padding-top: var(--jci-lp-space-3);
    font-size: 16px;
    line-height: 1.3;
  }

  body.single-program .jci-long-program-career__partners-title {
    margin-top: var(--jci-lp-space-1);
    font-size: 40px;
    line-height: 1;
  }

  /* Participant profile and Faculty keep their visual backgrounds, but their
   * white/content surfaces return to the canonical 16px Program axis. */
  body.single-program .jci-long-program-profile__hero {
    padding-top: var(--jci-lp-space-5);
    padding-bottom: 64px;
  }

  body.single-program .jci-long-program-profile__content {
    margin-top: 0;
    padding: var(--jci-lp-space-4) 0;
  }

  body.single-program .jci-long-program-testimonial--profile .jci-testimonial--profile {
    grid-template-columns: 1fr;
    gap: 0;
  }

  body.single-program .jci-long-program-testimonial--profile .jci-testimonial__media {
    overflow: visible;
    aspect-ratio: auto;
  }

  body.single-program .jci-long-program-testimonial--profile .jci-testimonial__media img {
    width: 100%;
    height: auto;
    aspect-ratio: auto;
    object-fit: contain;
  }

  body.single-program .jci-long-program-testimonial--profile .jci-testimonial__content {
    min-height: 0;
    padding: var(--jci-lp-space-3) 20px;
    background: #fff;
  }

  body.single-program .jci-long-program-testimonial--profile .jci-testimonial__quote {
    font-size: 16px;
    line-height: 1.5;
  }

  body.single-program .jci-long-program-testimonial--profile .jci-testimonial__attribution {
    margin-top: var(--jci-lp-space-3);
    font-size: 14px;
    line-height: 1.4;
  }

  body.single-program .jci-long-program-profile__content #member-list.member-list {
    margin-top: var(--jci-lp-space-5);
    padding-left: 0;
    gap: 0;
  }

  body.single-program .jci-faculty-list__link {
    min-height: 52px;
    padding: 13px 0;
  }

  body.single-program .jci-long-program-faculty__hero {
    margin-top: 0;
    padding-top: var(--jci-lp-space-5);
    padding-bottom: var(--jci-lp-space-5);
  }

  body.single-program .jci-long-program-faculty__video {
    margin-top: var(--jci-lp-space-3);
  }

  body.single-program .jci-long-program-faculty__members {
    margin-top: 0;
    padding: var(--jci-lp-space-4) 0;
  }

  /* Admission follows the same vertical grouping rhythm. */
  body.single-program .jci-long-program-admission__overview {
    display: block;
  }

  body.single-program .jci-long-program-admission__sections {
    display: block;
  }

  body.single-program .jci-long-program-admission__details + .jci-long-program-admission__details {
    margin-top: var(--jci-lp-space-4);
  }

  body.single-program .jci-long-program-admission__details section + section {
    margin-top: var(--jci-lp-space-3);
  }

  body.single-program .jci-long-program-admission__images {
    padding-left: 0;
    margin-top: var(--jci-lp-space-4);
  }

  body.single-program .jci-long-program-admission__image--secondary {
    width: 72%;
    margin-top: var(--jci-lp-space-2);
    align-self: flex-end;
  }

  body.single-program .jci-long-program-admission__process {
    margin-top: var(--jci-lp-space-5);
  }

  body.single-program .jci-long-program-admission__process > .jci-container--program {
    padding-top: var(--jci-lp-space-4);
    padding-bottom: var(--jci-lp-space-5);
  }

  body.single-program .jci-long-program-admission__steps {
    grid-template-columns: 1fr;
    gap: var(--jci-lp-space-4);
  }

  body.single-program .jci-long-program-admission__steps li {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 14px;
    align-items: start;
  }

  body.single-program .jci-long-program-admission__step-number {
    grid-row: 1 / span 3;
    width: 40px;
    height: 40px;
  }

  body.single-program .jci-long-program-admission__steps h3 {
    margin: 0;
    padding: 0 0 5px;
    font-size: 14px;
  }

  body.single-program .jci-long-program-admission__steps p {
    margin: 0;
  }

  body.single-program .jci-long-program-admission__pre-enrollment {
    grid-template-columns: 1fr;
    gap: var(--jci-lp-space-2);
    margin-top: var(--jci-lp-space-5);
  }

  body.single-program .jci-long-program-admission__pre-enrollment .rightalign {
    text-align: left;
  }

  body.single-program .jci-long-program-admission__pre-enrollment .btn1 {
    width: 100%;
    min-height: 48px;
  }
}

/* Tail sections: testimonials and FAQs close as one editorial sequence. */
body.single-program .jci-long-program-admission .jci-testimonial-cards {
  padding-bottom: clamp(32px, 3vw, 44px) !important;
}

body.single-program .jci-long-program__faqs-tail {
  padding-top: clamp(24px, 2.5vw, 36px);
  padding-bottom: clamp(72px, 8vw, 112px);
}

body.single-program .jci-long-program__faqs-tail .jci-faqs {
  margin-top: 0;
}

body.single-program .jci-long-program__faqs-tail .jci-faqs > h2 {
  margin-bottom: clamp(24px, 3vw, 36px);
  font-size: clamp(28px, 2.5vw, 36px);
  line-height: 1.1;
}

@media (max-width: 768px) {
  body.single-program .jci-long-program-admission .jci-testimonial-cards {
    padding-bottom: var(--jci-lp-space-4) !important;
  }

  body.single-program .jci-long-program__faqs-tail {
    padding-top: var(--jci-lp-space-3);
    padding-bottom: calc(var(--jci-lp-space-5) + 16px);
  }

  body.single-program .jci-long-program__faqs-tail .jci-faqs > h2 {
    margin-bottom: var(--jci-lp-space-3);
  }
}

/* Continuous Long Program document.
 *
 * All Program sections remain in the document on mobile and desktop. The
 * secondary navigation is therefore true in-page navigation rather than a tab
 * interface. Existing section partials remain the single renderers; this layer
 * only normalizes the rhythm between consecutive sections and the native anchor
 * geometry used by the shared navigation controller. */
body.single-program .jci-long-program.jci-long-program--continuous .jci-long-program-section {
  /* Own the section's top rhythm on the anchor target itself. A first-child
   * margin can collapse through the section, so its DOM top no longer matches
   * the visual start used by the shared anchor controller. Padding preserves
   * the existing breathing room while giving every section a stable anchor
   * boundary for sticky navigation and active-section tracking. */
  padding-top: clamp(40px, 5vw, 64px);
  padding-bottom: clamp(36px, 3.5vw, 48px);
}

body.single-program .jci-long-program.jci-long-program--continuous .jci-long-program-section + .jci-long-program-section {
  padding-top: clamp(48px, 4vw, 56px);
}

body.single-program .jci-long-program.jci-long-program--continuous .jci-long-program-section > :first-child {
  margin-top: 0;
}

body.single-program .jci-long-program.jci-long-program--continuous [data-jci-long-program-panel] {
  scroll-margin-top: calc(
    var(--jci-header-visual-offset, var(--jci-header-offset, 78px))
    + 72px
  );
}

@media (min-width: 769px) {
  /* Faculty already closes with its overlapping members panel. Keep the handoff
   * to Admission compact instead of applying the full generic section gap twice. */
  body.single-program .jci-long-program.jci-long-program--continuous .jci-long-program-faculty {
    padding-bottom: clamp(20px, 2vw, 28px);
  }

  body.single-program .jci-long-program.jci-long-program--continuous .jci-long-program-faculty + .jci-long-program-admission {
    padding-top: clamp(28px, 3vw, 36px);
  }
}

@media (max-width: 768px) {
  body.single-program .jci-long-program.jci-long-program--continuous .jci-long-program-section {
    padding-top: var(--jci-lp-space-4);
    padding-bottom: var(--jci-lp-space-3);
  }

  body.single-program .jci-long-program.jci-long-program--continuous .jci-long-program-section + .jci-long-program-section {
    padding-top: var(--jci-lp-space-3);
  }

  body.single-program .jci-long-program.jci-long-program--continuous [data-jci-long-program-panel] {
    scroll-margin-top: calc(
      var(--jci-header-visual-offset, var(--jci-header-offset, 78px))
      + 80px
    );
  }
}

@media (prefers-reduced-motion: reduce) {
  body.single-program .jci-long-program__nav-bar .jci-horizontal-menu__mobile-action,
  body.single-program .jci-long-program__nav-bar .jci-horizontal-menu__mobile-action-icon {
    transition: none;
  }
}
