/* Program 2.0: preserve the existing page widths and responsive breakpoints. */
.program-section {
  height: auto;
  padding-top: 3.4375rem;
  padding-bottom: 5rem;
}

.program-title,
.program-eyebrow,
.program-intro,
.program-visual,
.program-details,
.program-button,
.program-outro,
.pleasure-marquee {
  position: relative;
  top: auto;
  left: auto;
  transform: none;
  margin-left: auto;
  margin-right: auto;
}

.program-eyebrow { margin-top: 1.5rem; }
.program-start { margin: 1rem 1.5rem 0; text-align: center; }
.program-intro { margin-top: 3.5rem; font-weight: 700; }
.program-visual { margin-top: 5rem; }
.program-photo { aspect-ratio: 1442 / 579; transform: none; }
.program-quote { top: 14%; left: 15.9%; width: 26.5%; }
.program-quote-script { top: 42%; left: 20.6%; width: 16%; }

.program-overview {
  width: 66.25rem;
  max-width: calc(100% - 3rem);
  margin: 5rem auto;
}

.program-overview h2 {
  margin: 0 0 4rem;
  font-size: 2rem;
  font-weight: 400;
  line-height: 1.5;
  text-align: center;
  text-transform: uppercase;
}

.program-overview__grid { display: grid; grid-template-columns: 27fr 36.25fr; gap: 3.75rem; }
.program-overview__left { text-align: right; }
.program-overview__portrait {
  width: 19.5rem;
  max-width: 100%;
  aspect-ratio: 312 / 468;
  margin-left: auto;
  border: .625rem solid #f9e4f0;
  overflow: hidden;
}
.program-overview__portrait img { display: block; width: 100%; height: 100%; object-fit: cover; transform: scale(1.1136); }
.program-overview__left p { margin: 3.5rem 0 0; }
.program-overview__copy { max-width: 27rem; }
.program-overview__copy p { margin: 0 0 1.5rem; }
.program-overview__landscape { display: block; width: 100%; height: auto; margin-top: 3rem; border: .625rem solid #f9e4f0; }

.pleasure-marquee { margin-top: 0; }
.program-details { margin-top: 5rem; }
.program-details p { margin: 0; }
.program-details p + p { margin-top: 1.5rem; }
.program-prices { width: 37.6875rem; max-width: calc(100% - 3rem); margin: 3rem auto 0; }
.program-price { text-align: center; }
.program-price p { margin: .75rem 0 0; }
.program-price--standard { padding-right: 9rem; }
.program-price--extended { padding-left: 11rem; margin-top: 1.25rem; }
.program-price__badge { position: relative; width: 8.875rem; height: 5.25rem; margin: 0 auto; display: grid; place-items: center; }
.program-price__badge::before { content: ''; position: absolute; width: 8.5rem; height: 4.5rem; background: #fcfe5b; transform: rotate(5.16deg); }
.program-price__badge img { position: relative; max-width: none; }
.program-price--extended .program-price__badge { width: 11.8125rem; height: 6.75rem; }
.program-price--extended .program-price__badge::before { width: 11.0625rem; background: #e50218; transform: rotate(-12deg); }
.program-button { display: block; margin-top: 4rem; }
.program-button:focus-visible { outline: 2px solid #f9e4f0; outline-offset: 5px; }
.program-outro { margin-top: 4.5rem; }

@media screen and (max-width: 767px) {
  .program-section { padding-top: 3.5rem; padding-bottom: 2.5rem; }
  .program-visual { margin-top: 3.5rem; }
  .program-overview { width: 100%; max-width: none; margin: 3.5rem auto; }
  .program-overview h2 { font-size: 1.5rem; margin-bottom: 2rem; }
  .program-overview__grid { grid-template-columns: 1fr 1fr; gap: 1.5rem; }
  .program-overview__left p { margin-top: 2rem; }
  .program-overview__landscape { margin-top: 2rem; }
  .pleasure-marquee { margin-left: -1.5rem; }
  .program-details { margin-top: 3.5rem; }
  .program-prices { max-width: 100%; }
  .program-button { margin-top: 3rem; }
  .program-outro { margin-left: -.5rem; margin-right: -.5rem; }
}

@media screen and (max-width: 479px) {
  .program-overview__grid { grid-template-columns: 1fr; gap: 2rem; }
  .program-overview__portrait { width: 70%; margin-right: auto; border-width: .375rem; }
  .program-overview__left { text-align: left; }
  .program-overview__landscape { border-width: .375rem; }
  .pleasure-marquee { margin-left: -1rem; }
  .program-price--standard { padding-right: 4rem; }
  .program-price--extended { padding-left: 3rem; margin-top: 2rem; }
}
