.programs-page {
  margin: 0;
  overflow-x: hidden;
  background: var(--lux-ivory);
  color: var(--lux-charcoal);
  font-family: var(--font-sans);
}

.programs-page *,
.programs-page *::before,
.programs-page *::after {
  box-sizing: border-box;
}

.programs-page a {
  color: inherit;
  text-decoration: none;
}

.programs-header {
  position: sticky;
  z-index: 50;
  top: 0;
  display: grid;
  min-height: 88px;
  grid-template-columns: minmax(190px, 1fr) auto minmax(190px, 1fr);
  gap: 2rem;
  align-items: center;
  padding: 0 max(28px, calc((100vw - 1240px) / 2));
  border-bottom: 1px solid rgba(177, 138, 74, .28);
  background: rgba(252, 250, 245, .96);
  box-shadow: 0 10px 30px rgba(11, 28, 21, .05);
  backdrop-filter: blur(16px);
}

.programs-brand {
  display: inline-flex;
  width: max-content;
  flex-direction: column;
  color: var(--lux-emerald-deep);
  font-family: var(--font-serif);
  line-height: .84;
}

.programs-brand strong {
  font-size: 1.42rem;
  font-weight: 600;
}

.programs-brand span {
  color: var(--lux-emerald);
  font-size: 1rem;
}

.programs-nav {
  display: flex;
  gap: 2.2rem;
  align-items: center;
}

.programs-nav a {
  position: relative;
  padding: 1rem 0;
  color: #26342e;
  font-size: .86rem;
  font-weight: 650;
}

.programs-nav a::after {
  position: absolute;
  right: 0;
  bottom: .7rem;
  left: 0;
  height: 1px;
  background: var(--lux-brass);
  content: "";
  opacity: 0;
  transform: scaleX(.4);
  transition: opacity .25s ease, transform .25s ease;
}

.programs-nav a:hover::after,
.programs-nav a[aria-current="page"]::after {
  opacity: 1;
  transform: scaleX(1);
}

.programs-page .programs-header-cta,
.programs-page .programs-primary-button,
.programs-page .program-card-button,
.programs-page .application-submit {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  gap: .8rem;
  border: 1px solid var(--lux-emerald);
  border-radius: var(--lux-radius);
  background: var(--lux-emerald);
  color: var(--lux-ivory);
  font-weight: 750;
  transition: transform .3s ease, background-color .3s ease, box-shadow .3s ease;
}

.programs-header-cta {
  min-width: 170px;
  justify-self: end;
  padding: .75rem 1rem;
}

.programs-header-cta:hover,
.programs-primary-button:hover,
.program-card-button:hover,
.application-submit:hover {
  background: var(--lux-emerald-deep);
  box-shadow: var(--lux-shadow-hover);
  transform: translateY(-2px);
}

.programs-nav-toggle {
  display: none;
}

.programs-eyebrow,
.program-number {
  margin: 0;
  color: var(--lux-brass);
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .16em;
  line-height: 1.4;
  text-transform: uppercase;
}

.programs-hero {
  display: grid;
  min-height: 720px;
  grid-template-columns: minmax(0, .9fr) minmax(520px, 1.1fr);
  gap: 4rem;
  align-items: center;
  padding: 5.5rem max(28px, calc((100vw - 1240px) / 2));
  background: var(--lux-ivory);
}

.programs-hero-copy {
  max-width: 610px;
}

.programs-hero h1,
.service-hero h1 {
  margin: 1rem 0 0;
  color: var(--lux-emerald-deep);
  font-family: var(--font-serif);
  font-size: 4.7rem;
  font-weight: 500;
  line-height: .94;
}

.programs-hero-copy > p:not(.programs-eyebrow),
.service-hero-lede {
  max-width: 580px;
  margin: 1.6rem 0 0;
  color: var(--lux-muted);
  font-size: 1.08rem;
  line-height: 1.75;
}

.programs-primary-button {
  min-width: 235px;
  margin-top: 2rem;
  padding: .9rem 1.35rem;
}

.programs-hero-visual {
  position: relative;
  overflow: hidden;
  min-height: 560px;
  border: 1px solid rgba(177, 138, 74, .34);
  border-radius: var(--lux-radius);
  background: var(--lux-emerald-deep);
  box-shadow: var(--lux-shadow);
}

.programs-hero-visual > img {
  width: 100%;
  height: 560px;
  object-fit: cover;
}

.programs-hero-note {
  position: absolute;
  right: 1.5rem;
  bottom: 1.5rem;
  left: 1.5rem;
  display: grid;
  gap: .35rem;
  padding: 1rem 1.15rem;
  border: 1px solid rgba(216, 197, 160, .42);
  border-radius: var(--lux-radius);
  background: rgba(11, 28, 21, .9);
  color: var(--lux-ivory);
  backdrop-filter: blur(10px);
}

.programs-hero-note span {
  color: var(--lux-brass-soft);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.programs-hero-note strong {
  font-family: var(--font-serif);
  font-size: 1.3rem;
  font-weight: 500;
}

.programs-hero-note small {
  color: rgba(252, 250, 245, .76);
  font-size: .75rem;
  font-weight: 600;
}

.programs-hero-visual--coaching > img {
  object-position: 70% center;
  animation: coaching-image-reveal .65s ease both;
}

.programs-trust-band {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  padding: 0 max(28px, calc((100vw - 1240px) / 2));
  border-block: 1px solid var(--lux-brass-soft);
  background: var(--lux-paper);
}

.programs-trust-band > div {
  display: grid;
  min-height: 170px;
  grid-template-columns: 38px 1fr;
  column-gap: 1rem;
  align-content: center;
  padding: 2rem;
  border-left: 1px solid var(--lux-brass-soft);
}

.programs-trust-band > div:last-child {
  border-right: 1px solid var(--lux-brass-soft);
}

.programs-trust-band span {
  grid-row: 1 / 3;
  color: var(--lux-brass);
  font-family: var(--font-serif);
  font-size: 1.1rem;
}

.programs-trust-band strong {
  color: var(--lux-emerald-deep);
  font-family: var(--font-serif);
  font-size: 1.35rem;
}

.programs-trust-band p {
  margin: .35rem 0 0;
  color: var(--lux-muted);
  font-size: .84rem;
  line-height: 1.5;
}

.paid-programs {
  padding: 7.5rem max(28px, calc((100vw - 1240px) / 2));
  background: var(--lux-ivory);
}

.programs-section-heading {
  max-width: 760px;
}

.programs-section-heading h2,
.program-comparison h2,
.programs-final h2,
.service-section h2,
.application-copy h2,
.service-faq h2 {
  margin: .8rem 0 0;
  color: var(--lux-emerald-deep);
  font-family: var(--font-serif);
  font-size: 3.6rem;
  font-weight: 500;
  line-height: 1;
}

.programs-section-heading > p:last-child {
  max-width: 590px;
  margin: 1.2rem 0 0;
  color: var(--lux-muted);
  line-height: 1.65;
}

.paid-program-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.4rem;
  margin-top: 3.5rem;
}

.paid-program-card {
  display: flex;
  overflow: hidden;
  min-width: 0;
  flex-direction: column;
  border: 1px solid rgba(177, 138, 74, .3);
  border-radius: var(--lux-radius);
  background: #fff;
  box-shadow: var(--lux-shadow);
  transition: transform .4s ease, box-shadow .4s ease;
}

.paid-program-card:hover {
  box-shadow: var(--lux-shadow-hover);
  transform: translateY(-5px);
}

.paid-program-image {
  position: relative;
  display: block;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: var(--lux-paper);
}

.paid-program-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .7s ease;
}

.paid-program-card:hover .paid-program-image img {
  transform: scale(1.025);
}

.paid-program-image--coaching img {
  object-position: 72% center;
}

.paid-program-image--membership img {
  object-position: center;
}

.program-status {
  position: absolute;
  top: 1rem;
  left: 1rem;
  padding: .45rem .62rem;
  border: 1px solid rgba(216, 197, 160, .46);
  border-radius: 3px;
  background: rgba(11, 28, 21, .92);
  color: var(--lux-ivory);
  font-size: .66rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.program-status--waitlist {
  background: var(--lux-ivory);
  color: var(--lux-emerald-deep);
}

.paid-program-copy {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 2rem;
}

.paid-program-copy h3 {
  margin: .75rem 0 0;
  color: var(--lux-emerald-deep);
  font-family: var(--font-serif);
  font-size: 2rem;
  font-weight: 600;
  line-height: 1.04;
}

.program-summary {
  margin: 1.1rem 0 0;
  color: var(--lux-muted);
  font-size: .92rem;
  line-height: 1.62;
}

.program-facts {
  display: grid;
  gap: 0;
  margin: 1.6rem 0 0;
}

.program-facts > div {
  display: grid;
  grid-template-columns: 86px 1fr;
  gap: 1rem;
  padding: .72rem 0;
  border-top: 1px solid rgba(177, 138, 74, .22);
}

.program-facts dt {
  color: var(--lux-muted);
  font-size: .7rem;
  font-weight: 750;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.program-facts dd {
  margin: 0;
  color: #26342e;
  font-size: .84rem;
  font-weight: 650;
}

.program-card-button {
  width: 100%;
  margin-top: auto;
  padding: .8rem 1rem;
}

.program-comparison {
  display: grid;
  grid-template-columns: minmax(300px, .8fr) minmax(0, 1.2fr);
  gap: 5rem;
  padding: 7rem max(28px, calc((100vw - 1240px) / 2));
  background: var(--lux-paper);
}

.comparison-list {
  display: grid;
}

.comparison-list a {
  display: grid;
  gap: .55rem;
  padding: 1.5rem 0;
  border-top: 1px solid var(--lux-brass-soft);
  transition: padding-left .3s ease;
}

.comparison-list a:hover {
  padding-left: .7rem;
}

.comparison-list span {
  color: var(--lux-muted);
  font-family: var(--font-serif);
  font-size: 1.5rem;
}

.comparison-list strong {
  color: var(--lux-emerald);
  font-size: .8rem;
}

.programs-final {
  padding: 7rem max(28px, calc((100vw - 960px) / 2));
  background: var(--lux-emerald-deep);
  text-align: center;
}

.programs-final .programs-eyebrow {
  color: var(--lux-brass-soft);
}

.programs-final h2 {
  max-width: 850px;
  margin-right: auto;
  margin-left: auto;
  color: var(--lux-ivory);
}

.programs-final > p:not(.programs-eyebrow) {
  max-width: 650px;
  margin: 1.25rem auto 0;
  color: rgba(252, 250, 245, .74);
  line-height: 1.65;
}

.programs-page .programs-primary-button--light {
  border-color: var(--lux-ivory);
  background: var(--lux-ivory);
  color: var(--lux-emerald-deep);
}

.programs-footer {
  display: grid;
  grid-template-columns: minmax(200px, 1fr) auto auto;
  gap: 2rem;
  align-items: center;
  padding: 3rem max(28px, calc((100vw - 1240px) / 2));
  border-top: 1px solid rgba(177, 138, 74, .5);
  background: var(--lux-emerald-deep);
  color: rgba(252, 250, 245, .75);
}

.programs-brand--footer strong,
.programs-brand--footer span {
  color: var(--lux-ivory);
}

.programs-footer p {
  margin: 0;
}

.programs-footer nav {
  display: flex;
  gap: 1.4rem;
}

.programs-footer nav a {
  font-size: .8rem;
  font-weight: 650;
}

.programs-footer small {
  grid-column: 1 / -1;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(177, 138, 74, .38);
  font-size: .7rem;
}

/* Dedicated program sales pages */
.challenge-hero {
  display: grid;
  min-height: 680px;
  grid-template-columns: minmax(470px, .82fr) minmax(0, 1.18fr);
  overflow: hidden;
  border-bottom: 1px solid rgba(177, 138, 74, .42);
  background: var(--lux-emerald-deep);
}

.challenge-hero-copy {
  position: relative;
  z-index: 2;
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: center;
  padding: 5.5rem 3.5rem 5.5rem max(28px, calc((100vw - 1240px) / 2));
  color: var(--lux-ivory);
  animation: coaching-copy-reveal .55s ease both;
}

.challenge-hero .programs-eyebrow {
  color: var(--lux-brass-soft);
}

.challenge-hero h1 {
  max-width: 9.5ch;
  margin: 1rem 0 0;
  color: var(--lux-ivory);
  font-family: var(--font-serif);
  font-size: clamp(3.7rem, 5vw, 5.4rem);
  font-weight: 500;
  letter-spacing: 0;
  line-height: .92;
}

.challenge-hero-format {
  margin: 1.5rem 0 0;
  padding-top: 1.1rem;
  border-top: 1px solid rgba(216, 197, 160, .55);
  color: var(--lux-brass-soft);
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .1em;
  line-height: 1.5;
  text-transform: uppercase;
}

.challenge-hero-lede {
  max-width: 580px;
  margin: 1.25rem 0 0;
  color: rgba(252, 250, 245, .82);
  font-size: 1.04rem;
  line-height: 1.72;
}

.challenge-hero .challenge-meta {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .8rem;
  margin-top: 1.8rem;
}

.challenge-hero .challenge-meta div {
  border-left-color: rgba(216, 197, 160, .62);
}

.challenge-hero .challenge-meta span {
  color: rgba(252, 250, 245, .62);
}

.challenge-hero .challenge-meta strong {
  color: var(--lux-ivory);
}

.challenge-hero-actions {
  margin-top: 2rem;
}

.challenge-hero .programs-primary-button {
  border-color: var(--lux-brass);
  background: var(--lux-ivory);
  color: var(--lux-emerald-deep);
}

.challenge-hero .programs-primary-button:hover {
  background: var(--lux-brass-soft);
}

.challenge-hero .service-text-link {
  color: var(--lux-ivory);
  text-decoration-color: rgba(216, 197, 160, .65);
}

.challenge-hero-media {
  position: relative;
  min-width: 0;
  min-height: 680px;
  overflow: hidden;
  border-left: 1px solid rgba(177, 138, 74, .42);
  background: var(--lux-paper);
}

.challenge-hero-media img {
  width: 100%;
  height: 100%;
  min-height: 680px;
  object-fit: cover;
  object-position: 72% center;
  animation: coaching-image-reveal .65s ease both;
}

.challenge-hero-badge {
  position: absolute;
  right: 1.5rem;
  bottom: 1.5rem;
  padding: .55rem .75rem;
  border: 1px solid rgba(216, 197, 160, .62);
  border-radius: 3px;
  background: rgba(11, 28, 21, .9);
  color: var(--lux-ivory);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}

@keyframes coaching-copy-reveal {
  from {
    opacity: 0;
    transform: translateY(14px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes coaching-image-reveal {
  from {
    opacity: .72;
    transform: scale(1.025);
  }

  to {
    opacity: 1;
    transform: scale(1);
  }
}

.service-hero {
  display: grid;
  min-height: 720px;
  grid-template-columns: minmax(0, .92fr) minmax(500px, 1.08fr);
  gap: 4rem;
  align-items: center;
  padding: 5rem max(28px, calc((100vw - 1240px) / 2));
}

.service-hero-copy {
  max-width: 620px;
}

.service-hero--membership h1 {
  max-width: 10ch;
}

.service-hero-kicker {
  max-width: 22ch;
  margin: 1.25rem 0 0;
  color: var(--lux-emerald);
  font-family: var(--font-serif);
  font-size: 1.7rem;
  font-weight: 500;
  line-height: 1.12;
}

.service-hero h1 {
  max-width: 11ch;
}

.service-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 1.5rem;
  margin: 1.8rem 0 0;
}

.service-meta div {
  padding-left: 1rem;
  border-left: 1px solid var(--lux-brass);
}

.service-meta span,
.service-meta strong {
  display: block;
}

.service-meta span {
  color: var(--lux-muted);
  font-size: .66rem;
  font-weight: 750;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.service-meta strong {
  margin-top: .2rem;
  color: var(--lux-emerald-deep);
  font-size: .9rem;
}

.service-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  align-items: center;
  margin-top: 2rem;
}

.service-hero-actions .programs-primary-button {
  margin-top: 0;
}

.service-text-link {
  color: var(--lux-emerald);
  font-size: .82rem;
  font-weight: 750;
}

.service-hero-media {
  position: relative;
  overflow: hidden;
  min-height: 560px;
  border: 1px solid rgba(177, 138, 74, .34);
  border-radius: var(--lux-radius);
  background: var(--lux-emerald-deep);
  box-shadow: var(--lux-shadow);
}

.service-hero-media img {
  width: 100%;
  height: 560px;
  object-fit: cover;
}

.service-hero-media--contain img {
  object-fit: contain;
}

.service-hero-media--membership img {
  object-position: 52% center;
}

.membership-visual-note {
  position: absolute;
  right: 1.25rem;
  bottom: 1.25rem;
  left: 1.25rem;
  display: grid;
  gap: .35rem;
  padding: 1rem 1.15rem;
  border: 1px solid rgba(216, 197, 160, .48);
  border-radius: var(--lux-radius);
  background: rgba(11, 28, 21, .9);
  color: var(--lux-ivory);
  backdrop-filter: blur(10px);
}

.membership-visual-note span {
  color: var(--lux-brass-soft);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.membership-visual-note strong {
  font-family: var(--font-serif);
  font-size: 1.25rem;
  font-weight: 500;
}

.service-hero-badge {
  position: absolute;
  top: 1.25rem;
  left: 1.25rem;
  padding: .5rem .7rem;
  border: 1px solid var(--lux-brass-soft);
  border-radius: 3px;
  background: rgba(252, 250, 245, .94);
  color: var(--lux-emerald-deep);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.service-proof {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  padding: 0 max(28px, calc((100vw - 1240px) / 2));
  border-block: 1px solid var(--lux-brass-soft);
  background: var(--lux-paper);
}

.service-proof div {
  min-height: 145px;
  padding: 2rem;
  border-left: 1px solid var(--lux-brass-soft);
}

.service-proof div:last-child {
  border-right: 1px solid var(--lux-brass-soft);
}

.service-proof strong {
  display: block;
  color: var(--lux-emerald-deep);
  font-family: var(--font-serif);
  font-size: 1.35rem;
}

.service-proof span {
  display: block;
  margin-top: .45rem;
  color: var(--lux-muted);
  font-size: .78rem;
  line-height: 1.45;
}

.service-section {
  padding: 7rem max(28px, calc((100vw - 1240px) / 2));
}

.service-section--paper {
  background: var(--lux-paper);
}

.service-section-heading {
  max-width: 780px;
}

.service-section-heading > p:last-child {
  max-width: 650px;
  margin: 1.2rem 0 0;
  color: var(--lux-muted);
  line-height: 1.65;
}

.deliverable-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 3rem;
}

.deliverable-card {
  min-height: 250px;
  padding: 2rem;
  border: 1px solid rgba(177, 138, 74, .3);
  border-radius: var(--lux-radius);
  background: var(--lux-ivory);
}

.deliverable-card span {
  color: var(--lux-brass);
  font-family: var(--font-serif);
  font-size: 1.2rem;
}

.deliverable-card h3 {
  margin: 1.4rem 0 0;
  color: var(--lux-emerald-deep);
  font-family: var(--font-serif);
  font-size: 1.7rem;
  line-height: 1.06;
}

.deliverable-card p {
  margin: .9rem 0 0;
  color: var(--lux-muted);
  font-size: .9rem;
  line-height: 1.6;
}

.fit-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem;
  margin-top: 3rem;
}

.fit-panel {
  padding: 2.5rem;
  border: 1px solid rgba(177, 138, 74, .3);
  border-radius: var(--lux-radius);
  background: #fff;
}

.fit-panel--dark {
  background: var(--lux-emerald-deep);
  color: var(--lux-ivory);
}

.fit-panel h3 {
  margin: 0;
  color: var(--lux-emerald-deep);
  font-family: var(--font-serif);
  font-size: 2rem;
}

.fit-panel--dark h3 {
  color: var(--lux-ivory);
}

.fit-panel ul {
  display: grid;
  gap: .85rem;
  margin: 1.5rem 0 0;
  padding: 0;
  list-style: none;
}

.fit-panel li {
  position: relative;
  padding-left: 1.4rem;
  color: var(--lux-muted);
  line-height: 1.5;
}

.fit-panel--dark li {
  color: rgba(252, 250, 245, .78);
}

.fit-panel li::before {
  position: absolute;
  top: .55em;
  left: 0;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--lux-brass);
  content: "";
}

.coach-scope {
  display: grid;
  grid-template-columns: minmax(280px, .72fr) minmax(0, 1.28fr);
  gap: 4rem;
  padding: 5rem max(28px, calc((100vw - 1050px) / 2));
  background: var(--lux-emerald-deep);
  color: var(--lux-ivory);
}

.coach-scope h2 {
  margin: .8rem 0 0;
  color: var(--lux-ivory);
  font-family: var(--font-serif);
  font-size: 3rem;
  font-weight: 500;
}

.coach-scope-copy {
  display: grid;
  gap: 1rem;
  align-content: center;
}

.coach-scope-copy p {
  margin: 0;
  color: rgba(252, 250, 245, .76);
  line-height: 1.7;
}

.coach-scope-copy strong {
  color: var(--lux-brass-soft);
}

.application-section {
  display: grid;
  grid-template-columns: minmax(300px, .78fr) minmax(0, 1.22fr);
  gap: 5rem;
  padding: 7rem max(28px, calc((100vw - 1120px) / 2));
  background: var(--lux-ivory);
}

.application-copy {
  align-self: start;
}

.application-copy > p:not(.programs-eyebrow) {
  margin: 1.2rem 0 0;
  color: var(--lux-muted);
  line-height: 1.65;
}

.application-price {
  display: grid;
  gap: .2rem;
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--lux-brass-soft);
}

.application-price strong {
  color: var(--lux-emerald-deep);
  font-family: var(--font-serif);
  font-size: 2.4rem;
}

.application-price span {
  color: var(--lux-muted);
  font-size: .75rem;
}

.program-application {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.1rem;
  padding: 2rem;
  border: 1px solid rgba(177, 138, 74, .32);
  border-radius: var(--lux-radius);
  background: #fff;
  box-shadow: var(--lux-shadow);
}

.application-section--intake .application-copy {
  position: sticky;
  top: 110px;
  align-self: start;
}

.program-application--intake {
  gap: 1.4rem 1rem;
}

.program-application--wizard {
  min-height: 470px;
  align-content: start;
}

.program-application--wizard [hidden] {
  display: none !important;
}

.intake-progress,
.intake-wizard-controls {
  grid-column: 1 / -1;
}

.intake-progress {
  display: grid;
  gap: .65rem;
  padding-bottom: 1.1rem;
  border-bottom: 1px solid rgba(177, 138, 74, .28);
}

.intake-progress-copy {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
}

.intake-progress-copy span {
  color: var(--lux-brass);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.intake-progress-copy strong {
  color: var(--lux-muted);
  font-size: .72rem;
  font-weight: 700;
}

.intake-progress-track {
  overflow: hidden;
  height: 4px;
  border-radius: 2px;
  background: var(--lux-paper);
}

.intake-progress-track span {
  display: block;
  width: 0;
  height: 100%;
  background: var(--lux-emerald);
  transition: width .45s ease;
}

.program-application--wizard.wizard-active .application-group {
  padding-bottom: 0;
  border-bottom: 0;
}

.program-application--wizard.wizard-active .application-group-grid {
  grid-template-columns: 1fr;
}

.program-application--wizard.wizard-active [data-final-step] .application-group-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.program-application--wizard.wizard-active .application-field:not([hidden]) {
  max-width: 680px;
  animation: wizard-question-in .32s ease both;
}

.intake-wizard-controls {
  display: flex;
  min-height: 48px;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-top: .3rem;
}

.wizard-button {
  min-height: 46px;
  padding: .7rem 1rem;
  border: 1px solid var(--lux-emerald);
  border-radius: 4px;
  cursor: pointer;
  font: inherit;
  font-size: .78rem;
  font-weight: 750;
}

.wizard-button--back {
  background: transparent;
  color: var(--lux-emerald);
}

.wizard-button--next {
  margin-left: auto;
  background: var(--lux-emerald);
  color: var(--lux-ivory);
}

.wizard-button:hover {
  box-shadow: 0 8px 20px rgba(11, 28, 21, .12);
  transform: translateY(-1px);
}

.wizard-button:focus-visible {
  outline: 2px solid var(--lux-brass);
  outline-offset: 3px;
}

@keyframes wizard-question-in {
  from {
    opacity: 0;
    transform: translateY(8px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.application-group {
  display: block;
  min-width: 0;
  grid-column: 1 / -1;
  margin: 0;
  padding: 0 0 2rem;
  border: 0;
  border-bottom: 1px solid rgba(177, 138, 74, .28);
}

.application-group legend {
  display: flex;
  width: 100%;
  align-items: center;
  gap: .8rem;
  padding: 0;
  color: var(--lux-emerald-deep);
  font-family: var(--font-serif);
  font-size: 1.6rem;
  font-weight: 500;
}

.application-group legend span {
  display: inline-grid;
  width: 34px;
  height: 34px;
  flex: 0 0 auto;
  place-items: center;
  border: 1px solid var(--lux-brass);
  border-radius: 50%;
  color: var(--lux-brass);
  font-family: var(--font-sans);
  font-size: .68rem;
  font-weight: 800;
}

.application-group-intro {
  max-width: 680px;
  margin: .8rem 0 0;
  color: var(--lux-muted);
  font-size: .84rem;
  line-height: 1.6;
}

.application-group-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.1rem 1rem;
  margin-top: 1.35rem;
}

.application-field {
  display: grid;
  gap: .45rem;
}

.application-field--full,
.application-check,
.application-submit,
.application-status,
.application-success {
  grid-column: 1 / -1;
}

.application-field label,
.application-check label {
  color: var(--lux-emerald-deep);
  font-size: .76rem;
  font-weight: 750;
}

.application-field label small {
  display: inline-block;
  margin-left: .3rem;
  color: var(--lux-muted);
  font-size: .68rem;
  font-weight: 600;
}

.application-field-note {
  margin: .2rem 0 0;
  padding: .8rem .9rem;
  border-left: 2px solid var(--lux-brass);
  background: var(--lux-paper);
  color: var(--lux-muted);
  font-size: .76rem;
  line-height: 1.55;
}

.application-field input,
.application-field select,
.application-field textarea {
  width: 100%;
  min-height: 48px;
  border: 1px solid rgba(18, 60, 45, .22);
  border-radius: 4px;
  background: var(--lux-ivory);
  color: var(--lux-charcoal);
  font: inherit;
}

.application-field input,
.application-field select {
  padding: 0 .85rem;
}

.application-field textarea {
  min-height: 120px;
  padding: .75rem .85rem;
  resize: vertical;
}

.application-field input:focus,
.application-field select:focus,
.application-field textarea:focus {
  border-color: var(--lux-brass);
  outline: 2px solid rgba(177, 138, 74, .2);
}

.application-check {
  padding: .8rem 0;
  border-top: 1px solid rgba(177, 138, 74, .22);
}

.application-check label {
  display: grid;
  grid-template-columns: 20px 1fr;
  gap: .7rem;
  align-items: start;
  color: var(--lux-muted);
  font-weight: 550;
  line-height: 1.5;
}

.application-check input {
  width: 18px;
  height: 18px;
  margin: .15rem 0 0;
  accent-color: var(--lux-emerald);
}

.application-honeypot {
  position: absolute;
  left: -10000px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.application-submit {
  width: 100%;
  padding: .85rem 1.1rem;
  cursor: pointer;
}

.application-submit:disabled {
  cursor: wait;
  opacity: .65;
  transform: none;
}

.application-status {
  min-height: 1.4em;
  margin: 0;
  color: #8a3f34;
  font-size: .8rem;
  line-height: 1.5;
}

.application-success {
  padding: 2rem;
  border: 1px solid var(--lux-brass-soft);
  border-radius: var(--lux-radius);
  background: var(--lux-paper);
}

.application-success strong {
  display: block;
  color: var(--lux-emerald-deep);
  font-family: var(--font-serif);
  font-size: 2rem;
}

.application-success p {
  margin: .7rem 0 0;
  color: var(--lux-muted);
  line-height: 1.6;
}

.service-faq {
  padding: 7rem max(28px, calc((100vw - 900px) / 2));
  background: var(--lux-paper);
}

.service-faq details {
  border-top: 1px solid var(--lux-brass-soft);
}

.service-faq summary {
  padding: 1.35rem 0;
  color: var(--lux-emerald-deep);
  font-weight: 750;
  cursor: pointer;
}

.service-faq details p {
  margin: -.3rem 0 1.4rem;
  color: var(--lux-muted);
  line-height: 1.65;
}

.programs-page :focus-visible {
  outline: 2px solid var(--lux-brass);
  outline-offset: 4px;
}

@media (max-width: 1080px) {
  .programs-header {
    grid-template-columns: minmax(180px, 1fr) auto minmax(165px, 1fr);
    gap: 1rem;
  }

  .programs-nav {
    gap: 1.25rem;
  }

  .programs-hero,
  .service-hero {
    grid-template-columns: minmax(0, .9fr) minmax(420px, 1.1fr);
    gap: 2.5rem;
  }

  .challenge-hero {
    min-height: 650px;
    grid-template-columns: minmax(410px, .9fr) minmax(0, 1.1fr);
  }

  .challenge-hero-copy {
    padding-right: 2.5rem;
  }

  .challenge-hero-media,
  .challenge-hero-media img {
    min-height: 650px;
  }

  .programs-hero h1,
  .service-hero h1 {
    font-size: 4rem;
  }

  .paid-program-copy {
    padding: 1.55rem;
  }

  .program-facts > div {
    grid-template-columns: 1fr;
    gap: .3rem;
  }
}

@media (max-width: 820px) {
  .programs-header {
    min-height: 74px;
    grid-template-columns: 1fr auto;
  }

  .programs-page .programs-header-cta {
    display: none;
  }

  .programs-nav-toggle {
    display: grid;
    width: 48px;
    height: 48px;
    place-content: center;
    gap: 6px;
    border: 1px solid rgba(18, 60, 45, .2);
    border-radius: 50%;
    background: var(--lux-ivory);
  }

  .programs-nav-toggle span {
    width: 19px;
    height: 2px;
    background: var(--lux-emerald-deep);
    transition: transform .25s ease;
  }

  .programs-nav-toggle[aria-expanded="true"] span:first-child {
    transform: translateY(4px) rotate(45deg);
  }

  .programs-nav-toggle[aria-expanded="true"] span:last-child {
    transform: translateY(-4px) rotate(-45deg);
  }

  .programs-nav {
    position: absolute;
    top: calc(100% + 1px);
    right: 20px;
    display: none;
    width: min(280px, calc(100vw - 40px));
    gap: 0;
    padding: .7rem 1rem;
    border: 1px solid rgba(177, 138, 74, .3);
    border-radius: var(--lux-radius);
    background: var(--lux-ivory);
    box-shadow: var(--lux-shadow);
  }

  .programs-nav.is-open {
    display: grid;
  }

  .programs-nav a {
    padding: 1rem .25rem;
    border-bottom: 1px solid rgba(177, 138, 74, .22);
  }

  .programs-nav a:last-child {
    border-bottom: 0;
  }

  .programs-nav a::after {
    display: none;
  }

  .programs-hero,
  .service-hero {
    min-height: 0;
    grid-template-columns: 1fr;
    gap: 3rem;
    padding-top: 4.5rem;
    padding-bottom: 4.5rem;
  }

  .challenge-hero {
    min-height: 0;
    grid-template-columns: 1fr;
  }

  .challenge-hero-copy {
    padding: 4.5rem max(28px, calc((100vw - 690px) / 2));
  }

  .challenge-hero h1 {
    max-width: 11ch;
    font-size: 4.4rem;
  }

  .challenge-hero-media {
    min-height: 410px;
    border-top: 1px solid rgba(177, 138, 74, .42);
    border-left: 0;
  }

  .challenge-hero-media img {
    min-height: 410px;
    object-position: 69% center;
  }

  .programs-hero h1,
  .service-hero h1 {
    font-size: 3.7rem;
  }

  .programs-hero-visual,
  .service-hero-media {
    min-height: 500px;
  }

  .programs-hero-visual > img,
  .service-hero-media img {
    height: 500px;
  }

  .programs-trust-band,
  .service-proof {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .paid-program-grid,
  .deliverable-grid {
    grid-template-columns: 1fr;
  }

  .paid-program-card {
    display: grid;
    grid-template-columns: minmax(280px, .85fr) minmax(0, 1.15fr);
  }

  .paid-program-image {
    aspect-ratio: auto;
  }

  .program-comparison,
  .coach-scope,
  .application-section {
    grid-template-columns: 1fr;
    gap: 3rem;
  }

  .application-section--intake .application-copy {
    position: static;
  }

  .fit-grid {
    grid-template-columns: 1fr;
  }

  .programs-footer {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .programs-footer nav {
    flex-wrap: wrap;
  }
}

@media (max-width: 560px) {
  .programs-header {
    padding-inline: 18px;
  }

  .programs-brand strong {
    font-size: 1.18rem;
  }

  .programs-hero,
  .programs-trust-band,
  .paid-programs,
  .program-comparison,
  .programs-final,
  .programs-footer,
  .service-hero,
  .service-proof,
  .service-section,
  .coach-scope,
  .application-section,
  .service-faq {
    padding-right: 20px;
    padding-left: 20px;
  }

  .programs-hero h1,
  .service-hero h1 {
    font-size: 3.15rem;
  }

  .challenge-hero-copy {
    padding: 3.8rem 20px;
  }

  .challenge-hero h1 {
    font-size: clamp(3.15rem, 15vw, 4rem);
  }

  .challenge-hero-lede {
    font-size: 1rem;
  }

  .challenge-hero .challenge-meta {
    display: none;
  }

  .service-hero--membership .service-meta {
    display: none;
  }

  .challenge-hero-media,
  .challenge-hero-media img {
    min-height: 340px;
  }

  .challenge-hero-badge {
    right: .8rem;
    bottom: .8rem;
  }

  .programs-hero-visual,
  .service-hero-media {
    min-height: 360px;
  }

  .programs-hero-visual > img,
  .service-hero-media img {
    height: 360px;
  }

  .programs-hero-note {
    right: .8rem;
    bottom: .8rem;
    left: .8rem;
  }

  .programs-trust-band,
  .service-proof {
    grid-template-columns: 1fr;
  }

  .programs-trust-band > div,
  .service-proof div {
    min-height: 130px;
    border-right: 0;
    border-left: 0;
    border-top: 1px solid var(--lux-brass-soft);
  }

  .programs-section-heading h2,
  .program-comparison h2,
  .programs-final h2,
  .service-section h2,
  .application-copy h2,
  .service-faq h2 {
    font-size: 2.55rem;
  }

  .paid-program-card {
    display: flex;
  }

  .paid-program-image {
    aspect-ratio: 4 / 3;
  }

  .paid-program-copy {
    padding: 1.7rem 1.35rem;
  }

  .comparison-list span {
    font-size: 1.25rem;
  }

  .service-meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .deliverable-grid {
    gap: .8rem;
  }

  .deliverable-card {
    min-height: 0;
  }

  .fit-panel {
    padding: 2rem 1.4rem;
  }

  .program-application {
    grid-template-columns: 1fr;
    padding: 1.4rem;
  }

  .application-group-grid {
    grid-template-columns: 1fr;
  }

  .program-application--wizard.wizard-active [data-final-step] .application-group-grid {
    grid-template-columns: 1fr;
  }

  .application-group legend {
    align-items: flex-start;
    font-size: 1.4rem;
  }

  .intake-progress-copy {
    align-items: flex-start;
    flex-direction: column;
    gap: .25rem;
  }

  .wizard-button {
    padding-inline: .85rem;
  }

  .application-field,
  .application-field--full,
  .application-check,
  .application-submit,
  .application-status,
  .application-success {
    grid-column: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  .programs-page *,
  .programs-page *::before,
  .programs-page *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}
