/* Program page: premium course presentation with tactile motion and clear conversion paths. */
.program-v2 {
    --program-ink: #171522;
    --program-muted: #6f6880;
    overflow: hidden;
    background: var(--paper);
}

.program-v2 .button-primary {
    background: var(--primary);
}

.program-v2 .button-primary:hover {
    background: var(--magenta);
}

.program-hero-v2 {
    position: relative;
    min-height: 775px;
    overflow: hidden;
    padding: 162px 0 80px;
    background:
        radial-gradient(circle at 80% 41%, rgba(155, 77, 202, .13), transparent 25rem),
        linear-gradient(118deg, var(--paper) 35%, var(--soft));
}

.program-hero-grid-v2 {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: .94fr 1.06fr;
    gap: 25px;
    align-items: center;
}

.program-hero-copy {
    padding: 28px 0 40px;
}

.program-hero-copy .eyebrow {
    color: var(--magenta);
}

.program-hero-copy h1 {
    margin: 24px 0 23px;
    color: var(--primary-dark);
    font: 400 clamp(58px, 6.3vw, 83px)/.94 var(--font-display);
    letter-spacing: -4px;
}

.program-hero-copy h1 em,
.program-overview-heading h2 em,
.program-overview-copy h3 em,
.program-curriculum-heading h2 em,
.program-journey-heading h2 em,
.program-audience-heading h2 em,
.program-details-copy h2 em,
.program-faq-heading h2 em,
.program-final-cta-inner h2 em {
    color: var(--primary);
    font-style: italic;
}

.program-hero-lead {
    max-width: 490px;
    color: var(--program-muted);
    font-size: 17px;
    line-height: 1.85;
}

.program-hero-actions {
    display: flex;
    align-items: center;
    gap: 26px;
    margin-top: 30px;
}

.program-outline-link {
    display: inline-flex;
    gap: 9px;
    align-items: center;
    padding-bottom: 7px;
    border-bottom: 1px solid var(--lavender);
    color: var(--primary);
    font-size: 12px;
    font-weight: 800;
}

.program-outline-link span {
    transition: transform .35s var(--ease);
}

.program-outline-link:hover span {
    transform: translateY(4px);
}

.program-trust-row {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-top: 59px;
}

.program-trust-row span {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.program-trust-row strong {
    color: var(--program-ink);
    font: 400 18px var(--font-display);
}

.program-trust-row small {
    color: var(--program-muted);
    font-size: 9px;
    letter-spacing: .5px;
}

.program-trust-row i {
    width: 1px;
    height: 30px;
    background: var(--border);
}

.program-hero-art {
    position: relative;
    min-height: 560px;
    display: grid;
    place-items: center;
}

.program-art-orbit {
    position: absolute;
    border: 1px solid rgba(69, 33, 140, .17);
    border-radius: 50%;
}

.program-art-orbit-a {
    width: 500px;
    height: 500px;
    animation: program-spin 28s linear infinite;
}

.program-art-orbit-b {
    width: 365px;
    height: 365px;
    border-color: rgba(229, 0, 131, .16);
    animation: program-spin 20s linear infinite reverse;
}

.program-course-card {
    position: relative;
    z-index: 3;
    width: min(335px, 66%);
    min-height: 455px;
    padding: 27px 29px;
    overflow: hidden;
    border: 7px solid rgba(255, 255, 255, .9);
    border-radius: 25px 25px 145px 145px;
    color: var(--white);
    background:
        radial-gradient(circle at 80% 20%, rgba(229, 0, 131, .4), transparent 10rem),
        linear-gradient(145deg, #24104f, #45218c 65%, #9b4dca);
    box-shadow: 0 30px 65px rgba(36, 16, 79, .24);
    transform: rotate(2deg);
    animation: program-breathe 7s ease-in-out infinite;
}

.program-course-card::before,
.program-course-card::after {
    content: "";
    position: absolute;
    border: 1px solid rgba(245, 182, 222, .25);
    border-radius: 50%;
}

.program-course-card::before {
    width: 275px;
    height: 275px;
    right: -110px;
    bottom: 38px;
}

.program-course-card::after {
    width: 190px;
    height: 190px;
    right: -68px;
    bottom: 82px;
}

.program-course-card-top {
    display: flex;
    justify-content: space-between;
    color: var(--blush);
    font-size: 9px;
    letter-spacing: 2px;
}

.program-card-number {
    font: 400 18px var(--font-display);
    letter-spacing: 0;
}

.program-course-card-mark {
    display: grid;
    width: 47px;
    height: 47px;
    margin-top: 44px;
    place-items: center;
    border: 1px solid rgba(245, 182, 222, .4);
    border-radius: 50%;
    color: var(--blush);
}

.program-course-card-mark svg {
    width: 20px;
}

.program-course-card h2 {
    position: relative;
    z-index: 1;
    margin: 24px 0 15px;
    font: 400 56px/.85 var(--font-display);
    letter-spacing: -2px;
}

.program-course-card h2 em {
    color: var(--blush);
    font-style: italic;
}

.program-course-card-divider {
    width: 42px;
    height: 2px;
    background: var(--magenta);
}

.program-course-card p {
    position: relative;
    z-index: 1;
    max-width: 190px;
    margin: 16px 0 0;
    color: #ded2ee;
    font-size: 12px;
    line-height: 1.65;
}

.program-card-tag {
    position: absolute;
    z-index: 1;
    bottom: 37px;
    left: 29px;
    color: var(--blush);
    font-size: 9px;
    letter-spacing: 2px;
}

.program-float {
    position: absolute;
    z-index: 2;
    object-fit: contain;
    pointer-events: none;
    filter: drop-shadow(0 18px 22px rgba(69, 33, 140, .13));
}

.program-float-ribbon {
    width: 205px;
    bottom: -16px;
    left: -11px;
    opacity: .68;
    animation: program-float-b 10s ease-in-out infinite;
}

.program-float-orb {
    width: 215px;
    top: -2px;
    right: -2px;
    opacity: .8;
    animation: program-float-a 8s ease-in-out infinite;
}

.program-float-pearl {
    width: 145px;
    right: 7px;
    bottom: 18px;
    opacity: .8;
    animation: program-float-c 7s ease-in-out infinite;
}

.program-art-pill {
    position: absolute;
    z-index: 4;
    bottom: 47px;
    left: 3px;
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 11px 14px;
    color: var(--primary-dark);
    background: rgba(252, 251, 255, .9);
    box-shadow: 0 14px 30px rgba(36, 16, 79, .12);
    font-size: 9px;
}

.program-art-pill span {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--magenta);
    box-shadow: 0 0 0 5px rgba(229, 0, 131, .1);
}

.program-hero-orb {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
}

.program-hero-orb-one {
    width: 420px;
    height: 420px;
    top: -180px;
    left: -150px;
    background: rgba(229, 0, 131, .05);
}

.program-hero-orb-two {
    width: 300px;
    height: 300px;
    right: -140px;
    bottom: -120px;
    background: rgba(155, 77, 202, .1);
}

.program-hero-scroll {
    position: absolute;
    z-index: 4;
    bottom: 21px;
    left: calc(50% - 580px);
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--muted);
    font-size: 9px;
    letter-spacing: 1.8px;
    text-transform: uppercase;
}

.program-hero-scroll span {
    width: 1px;
    height: 30px;
    background: linear-gradient(var(--magenta), transparent);
}

.program-facts-v2 {
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    background: var(--white);
}

.program-facts-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
}

.program-fact {
    display: flex;
    align-items: center;
    gap: 13px;
    min-height: 95px;
    padding: 16px 22px;
    border-right: 1px solid var(--border);
}

.program-fact:first-child {
    padding-left: 0;
}

.program-fact:last-child {
    border-right: 0;
}

.program-fact-icon {
    display: grid;
    width: 35px;
    height: 35px;
    place-items: center;
    border-radius: 50%;
    color: var(--primary);
    background: var(--soft);
}

.program-fact-icon svg {
    width: 16px;
}

.program-fact div {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.program-fact small {
    color: var(--muted);
    font-size: 8px;
    letter-spacing: 1.6px;
}

.program-fact strong {
    color: var(--primary-dark);
    font: 400 16px var(--font-display);
}

.program-overview-v2 {
    padding: 130px 0 145px;
    background: var(--white);
}

.program-overview-heading,
.program-curriculum-heading,
.program-audience-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 45px;
}

.program-overview-heading h2,
.program-curriculum-heading h2,
.program-audience-heading h2 {
    margin: 18px 0 0;
    color: var(--primary-dark);
    font: 400 51px/1.02 var(--font-display);
    letter-spacing: -2px;
}

.program-overview-heading > p,
.program-curriculum-heading > p,
.program-audience-heading > p {
    max-width: 375px;
    margin: 0 0 3px;
    color: var(--program-muted);
    font-size: 14px;
    line-height: 1.85;
}

.program-overview-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 90px;
    margin-top: 67px;
}

.program-overview-image {
    position: relative;
    height: 420px;
}

.program-overview-image > img {
    position: relative;
    z-index: 2;
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    border-radius: 4px 155px 4px 4px;
    filter: saturate(.92);
    box-shadow: 18px 25px 50px rgba(36, 16, 79, .14);
    transition: transform .8s var(--ease), filter .5s ease;
}

.program-overview-image:hover > img {
    transform: translateY(-7px) scale(1.02);
    filter: saturate(1.05);
}

.program-image-caption {
    position: absolute;
    z-index: 3;
    right: -28px;
    bottom: 22px;
    display: flex;
    flex-direction: column;
    min-width: 175px;
    padding: 14px 16px;
    background: rgba(252, 251, 255, .93);
    box-shadow: 0 14px 28px rgba(36, 16, 79, .11);
}

.program-image-caption span {
    color: var(--magenta);
    font: 400 19px var(--font-display);
}

.program-image-caption strong {
    margin-top: 5px;
    color: var(--primary-dark);
    font: 400 17px var(--font-display);
}

.program-image-caption small {
    margin-top: 3px;
    color: var(--muted);
    font-size: 9px;
}

.program-image-orbit {
    position: absolute;
    z-index: 1;
    width: 350px;
    height: 350px;
    top: 32px;
    left: -27px;
    border: 1px solid rgba(155, 77, 202, .22);
    border-radius: 50%;
    animation: program-spin 22s linear infinite reverse;
}

.program-overview-copy {
    padding-right: 20px;
}

.program-overview-kicker {
    color: var(--magenta);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 2.3px;
    text-transform: uppercase;
}

.program-overview-copy h3 {
    margin: 16px 0 20px;
    color: var(--primary-dark);
    font: 400 42px/1.05 var(--font-display);
    letter-spacing: -1.5px;
}

.program-overview-copy > p {
    max-width: 500px;
    color: var(--program-muted);
    font-size: 15px;
    line-height: 1.9;
}

.program-check-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 25px;
    color: var(--primary-dark);
    font-size: 12px;
}

.program-check-list span {
    display: flex;
    align-items: center;
    gap: 9px;
}

.program-check-list svg {
    width: 16px;
    color: var(--magenta);
}

.program-curriculum-v2 {
    position: relative;
    overflow: hidden;
    padding: 128px 0 143px;
    color: var(--white);
    background: var(--primary-dark);
}

.program-curriculum-v2::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 82% 15%, rgba(155, 77, 202, .34), transparent 25rem),
        linear-gradient(135deg, rgba(36, 16, 79, 1), rgba(69, 33, 140, .92));
}

.program-curriculum-glow {
    position: absolute;
    width: 720px;
    height: 720px;
    right: -220px;
    top: 115px;
    border: 1px solid rgba(245, 182, 222, .15);
    border-radius: 50%;
    box-shadow: 0 0 0 55px rgba(245, 182, 222, .025), 0 0 0 115px rgba(245, 182, 222, .017);
    animation: program-spin 32s linear infinite;
}

.program-curriculum-heading,
.program-curriculum-grid {
    position: relative;
    z-index: 1;
}

.eyebrow-light {
    color: var(--blush) !important;
}

.eyebrow-light .eyebrow-pulse {
    background: var(--blush);
    box-shadow: 0 0 0 5px rgba(245, 182, 222, .1);
}

.program-curriculum-heading h2 {
    color: var(--white);
}

.program-curriculum-heading h2 em {
    color: var(--blush);
}

.program-curriculum-heading > p {
    color: #d8cfea;
}

.program-curriculum-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    margin-top: 63px;
}

.program-curriculum-card {
    position: relative;
    min-height: 248px;
    padding: 23px 22px 25px;
    border: 1px solid rgba(255, 255, 255, .13);
    background: rgba(255, 255, 255, .055);
    backdrop-filter: blur(10px);
    transition: transform .45s var(--ease), background .45s ease, border-color .45s ease, box-shadow .45s ease;
    transition-delay: var(--card-delay);
}

.program-curriculum-card:hover {
    transform: translateY(-9px);
    border-color: rgba(245, 182, 222, .46);
    background: rgba(255, 255, 255, .11);
    box-shadow: 0 20px 35px rgba(0, 0, 0, .12);
}

.program-curriculum-video {
    position: relative;
    min-height: 248px;
    margin: 0;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .16);
    background: #25223f;
    box-shadow: 0 20px 35px rgba(0, 0, 0, .12);
}

.program-curriculum-video video {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 248px;
    object-fit: cover;
    opacity: .8;
    filter: saturate(.72) contrast(1.04);
    transition: transform .8s var(--ease), opacity .4s ease, filter .4s ease;
}

.program-curriculum-video:hover video {
    transform: scale(1.06);
    opacity: .94;
    filter: saturate(.95) contrast(1.04);
}

.program-curriculum-video::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(36, 16, 79, .05) 18%, rgba(36, 16, 79, .84) 100%);
    pointer-events: none;
}

.program-curriculum-video figcaption {
    position: absolute;
    z-index: 1;
    right: 21px;
    bottom: 22px;
    left: 21px;
    color: var(--white);
}

.program-curriculum-video figcaption span {
    display: block;
    margin-bottom: 9px;
    color: var(--blush);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 1.8px;
}

.program-curriculum-video figcaption strong {
    display: block;
    max-width: 180px;
    font: 400 20px/1.12 var(--font-display);
}

.program-curriculum-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: var(--blush);
    font: 12px var(--font-display);
}

.program-curriculum-icon {
    display: grid;
    width: 36px;
    height: 36px;
    place-items: center;
    border: 1px solid rgba(245, 182, 222, .3);
    border-radius: 50%;
    color: var(--blush);
}

.program-curriculum-icon svg {
    width: 16px;
}

.program-curriculum-card h3 {
    max-width: 190px;
    margin: 42px 0 9px;
    color: var(--white);
    font: 400 21px/1.12 var(--font-display);
}

.program-curriculum-card p {
    margin: 0;
    color: #cfc6e0;
    font-size: 11px;
    line-height: 1.65;
}

.program-curriculum-arrow {
    position: absolute;
    right: 22px;
    bottom: 25px;
    color: var(--blush);
    opacity: 0;
    transform: translateX(-5px);
    transition: opacity .35s ease, transform .35s var(--ease);
}

.program-curriculum-card:hover .program-curriculum-arrow {
    opacity: 1;
    transform: translateX(0);
}

.program-curriculum-arrow svg {
    width: 16px;
}

.program-journey-v2 {
    padding: 130px 0 140px;
    background: var(--paper);
}

.program-journey-heading {
    max-width: 520px;
}

.program-journey-intro {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 310px;
    align-items: start;
    gap: 65px;
}

.program-journey-visual {
    position: relative;
    min-height: 235px;
    margin-top: -42px;
    isolation: isolate;
}

.program-journey-visual-glow {
    position: absolute;
    top: 14px;
    right: 15px;
    width: 218px;
    height: 190px;
    border-radius: 52% 48% 45% 55%;
    background: linear-gradient(145deg, rgba(245, 182, 222, .31), rgba(185, 180, 216, .2) 55%, rgba(169, 207, 227, .28));
    transform: rotate(-11deg);
    z-index: -1;
}

.program-journey-visual img {
    position: absolute;
    top: -3px;
    right: 30px;
    width: 245px;
    height: 245px;
    object-fit: contain;
    filter: drop-shadow(0 16px 22px rgba(69, 33, 140, .14));
    transform: rotate(4deg);
    transition: transform .6s var(--ease);
}

.program-journey-visual:hover img {
    transform: rotate(0) translateY(-5px) scale(1.035);
}

.program-journey-visual > span {
    position: absolute;
    right: 10px;
    bottom: 9px;
    color: var(--primary);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 2px;
}

.program-journey-heading h2 {
    margin: 18px 0 17px;
    color: var(--primary-dark);
    font: 400 51px/1 var(--font-display);
    letter-spacing: -2px;
}

.program-journey-heading > p {
    max-width: 400px;
    margin: 0;
    color: var(--program-muted);
    font-size: 14px;
    line-height: 1.85;
}

.program-journey-line {
    position: relative;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    margin-top: 67px;
    border-top: 1px solid var(--border);
}

.program-journey-progress {
    position: absolute;
    top: -2px;
    left: 0;
    width: var(--journey-fill, 0%);
    height: 3px;
    background: linear-gradient(90deg, var(--magenta), var(--orchid));
    transition: width .12s linear;
}

.program-journey-step {
    position: relative;
    padding-top: 29px;
}

.program-journey-step::before {
    content: "";
    position: absolute;
    top: -6px;
    left: 0;
    width: 9px;
    height: 9px;
    border: 2px solid var(--paper);
    border-radius: 50%;
    background: var(--magenta);
    box-shadow: 0 0 0 1px var(--magenta);
    transition: transform .35s var(--ease), background .35s ease, box-shadow .35s ease;
}

.program-journey-step.is-active::before {
    background: var(--primary);
    box-shadow: 0 0 0 1px var(--primary), 0 0 0 6px rgba(69, 33, 140, .1);
    transform: scale(1.22);
}

.program-journey-step > span {
    color: var(--magenta);
    font: 400 19px var(--font-display);
}

.program-journey-step strong {
    display: block;
    margin: 20px 0 8px;
    color: var(--primary-dark);
    font: 400 23px/1.1 var(--font-display);
}

.program-journey-step small {
    display: block;
    max-width: 190px;
    color: var(--program-muted);
    font-size: 11px;
    line-height: 1.65;
}

.program-audience-v2 {
    padding: 130px 0 143px;
    background: var(--white);
}

.program-audience-heading h2 {
    color: var(--primary-dark);
}

.program-audience-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    margin-top: 60px;
}

.program-audience-card {
    position: relative;
    display: flex;
    min-height: 325px;
    flex-direction: column;
    padding: 26px 25px;
    border: 1px solid var(--border);
    background: var(--paper);
    transition: transform .45s var(--ease), box-shadow .45s ease, border-color .45s ease;
}

.program-audience-card:hover {
    transform: translateY(-8px);
    border-color: var(--orchid);
    box-shadow: 0 20px 45px rgba(36, 16, 79, .12);
}

.program-audience-number {
    color: var(--magenta);
    font: 400 18px var(--font-display);
}

.program-audience-icon {
    display: grid;
    width: 40px;
    height: 40px;
    margin-top: 28px;
    place-items: center;
    border-radius: 50%;
    color: var(--primary);
    background: var(--soft);
    transition: transform .45s var(--ease), background .45s ease, color .45s ease;
}

.program-audience-card:hover .program-audience-icon {
    color: var(--white);
    background: var(--magenta);
    transform: rotate(10deg) scale(1.08);
}

.program-audience-icon svg {
    width: 18px;
}

.program-audience-card h3 {
    max-width: 260px;
    margin: 23px 0 8px;
    color: var(--primary-dark);
    font: 400 22px/1.14 var(--font-display);
}

.program-audience-card p {
    max-width: 300px;
    margin: 0;
    color: var(--program-muted);
    font-size: 12px;
    line-height: 1.65;
}

.program-audience-footer {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: auto;
    padding-top: 24px;
    color: var(--primary);
    font-size: 10px;
    font-weight: 700;
}

.program-audience-footer svg {
    width: 14px;
    color: var(--magenta);
}

.program-details-v2 {
    position: relative;
    overflow: hidden;
    padding: 110px 0;
    color: var(--white);
    background: linear-gradient(125deg, var(--primary-dark), var(--primary));
}

.program-details-v2::before {
    content: "";
    position: absolute;
    width: 620px;
    height: 620px;
    right: -200px;
    top: -200px;
    border: 1px solid rgba(245, 182, 222, .17);
    border-radius: 50%;
    box-shadow: 0 0 0 50px rgba(245, 182, 222, .03), 0 0 0 105px rgba(245, 182, 222, .025);
    animation: program-spin 27s linear infinite;
}

.program-details-layout {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    align-items: center;
    gap: 100px;
}

.program-details-copy h2 {
    margin: 20px 0 18px;
    color: var(--white);
    font: 400 52px/1 var(--font-display);
    letter-spacing: -2px;
}

.program-details-copy h2 em {
    color: var(--blush);
}

.program-details-copy > p {
    max-width: 330px;
    margin: 0 0 28px;
    color: #d7cce7;
    font-size: 13px;
    line-height: 1.8;
}

.program-details-copy .button-light {
    color: var(--primary);
    background: var(--white);
}

.program-date-card {
    padding: 11px 27px;
    border: 1px solid rgba(255, 255, 255, .16);
    background: rgba(255, 255, 255, .08);
    backdrop-filter: blur(10px);
}

.program-date-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
    min-height: 69px;
    border-bottom: 1px solid rgba(255, 255, 255, .13);
}

.program-date-row:last-child {
    border-bottom: 0;
}

.program-date-row span {
    color: #cfc4e1;
    font-size: 11px;
}

.program-date-row strong {
    color: var(--white);
    font: 400 19px var(--font-display);
    text-align: right;
}

.program-date-row small {
    display: block;
    margin-top: 3px;
    color: var(--blush);
    font: normal 9px var(--font-body);
}

.program-date-highlight strong {
    color: var(--blush);
    font-size: 25px;
}

.program-faq-v2 {
    padding: 130px 0 145px;
    background: var(--paper);
}

.program-faq-layout {
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: 105px;
}

.program-faq-heading h2 {
    margin: 18px 0;
    color: var(--primary-dark);
    font: 400 50px/1 var(--font-display);
    letter-spacing: -2px;
}

.program-faq-heading > p {
    max-width: 330px;
    margin: 0;
    color: var(--program-muted);
    font-size: 14px;
    line-height: 1.85;
}

.program-faq-list {
    border-top: 1px solid var(--border);
}

.program-faq-item {
    border-bottom: 1px solid var(--border);
}

.program-faq-item button {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 22px 0;
    border: 0;
    color: var(--primary-dark);
    background: none;
    text-align: left;
    font: 400 19px var(--font-display);
}

.program-faq-item button svg {
    width: 17px;
    color: var(--magenta);
    transition: transform .35s var(--ease);
}

.program-faq-item button[aria-expanded="true"] svg {
    transform: rotate(180deg);
}

.program-faq-answer {
    overflow: hidden;
    max-height: 0;
    transition: max-height .45s var(--ease);
}

.program-faq-answer p {
    max-width: 570px;
    margin: 0 30px 21px 0;
    color: var(--program-muted);
    font-size: 13px;
    line-height: 1.8;
}

.program-final-cta-v2 {
    position: relative;
    overflow: hidden;
    padding: 120px 0 132px;
    color: var(--white);
    background:
        radial-gradient(circle at 50% -50%, rgba(155, 77, 202, .54), transparent 35rem),
        linear-gradient(125deg, var(--primary-dark), var(--primary));
    text-align: center;
}

.program-final-cta-v2::before {
    content: "";
    position: absolute;
    width: 540px;
    height: 540px;
    left: calc(50% - 270px);
    top: 44px;
    border: 1px solid rgba(245, 182, 222, .15);
    border-radius: 50%;
    animation: program-spin 30s linear infinite reverse;
}

.program-final-cta-v2 > img {
    position: absolute;
    right: -56px;
    bottom: -125px;
    width: 330px;
    opacity: .18;
    transform: rotate(-8deg);
    animation: program-float-b 10s ease-in-out infinite;
}

.program-final-cta-inner {
    position: relative;
    z-index: 1;
}

.program-final-cta-inner h2 {
    margin: 18px 0 14px;
    color: var(--white);
    font: 400 59px/.94 var(--font-display);
    letter-spacing: -2px;
}

.program-final-cta-inner h2 em {
    color: var(--blush);
}

.program-final-cta-inner p {
    max-width: 430px;
    margin: 0 auto 29px;
    color: #d8cee5;
    font-size: 14px;
    line-height: 1.8;
}

.program-final-cta-inner .button-light {
    color: var(--primary);
    background: var(--white);
}

@keyframes program-spin {
    to { transform: rotate(360deg); }
}

@keyframes program-breathe {
    0%, 100% { transform: rotate(2deg) translateY(0); }
    50% { transform: rotate(2deg) translateY(-9px); }
}

@keyframes program-float-a {
    0%, 100% { transform: translate3d(0, 0, 0) rotate(0); }
    50% { transform: translate3d(10px, -15px, 0) rotate(4deg); }
}

@keyframes program-float-b {
    0%, 100% { transform: translate3d(0, 0, 0) rotate(-4deg); }
    50% { transform: translate3d(-9px, 12px, 0) rotate(3deg); }
}

@keyframes program-float-c {
    0%, 100% { transform: translate3d(0, 0, 0) scale(1); }
    50% { transform: translate3d(-9px, -12px, 0) scale(1.05); }
}

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

/* Readability pass: supporting copy and metadata should remain comfortable to read
   on both desktop and mobile, especially over the darker curriculum section. */
.program-v2 .program-fact small {
    font-size: 10px;
}

.program-v2 .program-fact strong {
    font-size: 18px;
}

.program-v2 .program-overview-heading > p,
.program-v2 .program-curriculum-heading > p,
.program-v2 .program-audience-heading > p {
    font-size: 16px;
    line-height: 1.8;
}

.program-v2 .program-overview-kicker {
    font-size: 12px;
    letter-spacing: 2px;
}

.program-v2 .program-overview-copy > p {
    font-size: 17px;
    line-height: 1.85;
}

.program-v2 .program-check-list {
    font-size: 14px;
    line-height: 1.6;
}

.program-v2 .program-curriculum-top {
    font-size: 13px;
}

.program-v2 .program-curriculum-card p {
    font-size: 14px;
    line-height: 1.65;
}

.program-v2 .program-journey-heading > p {
    font-size: 16px;
    line-height: 1.8;
}

.program-v2 .program-journey-step small {
    font-size: 14px;
    line-height: 1.65;
}

.program-v2 .program-audience-card p {
    font-size: 14px;
    line-height: 1.7;
}

.program-v2 .program-audience-footer {
    font-size: 12px;
}

.program-v2 .program-details-copy > p {
    font-size: 15px;
    line-height: 1.8;
}

.program-v2 .program-date-row span {
    font-size: 13px;
}

.program-v2 .program-date-row small {
    font-size: 11px;
}

.program-v2 .program-faq-heading > p {
    font-size: 16px;
    line-height: 1.8;
}

.program-v2 .program-faq-answer p {
    font-size: 15px;
    line-height: 1.8;
}

@media (max-width: 700px) {
    .program-v2 .program-overview-heading > p,
    .program-v2 .program-curriculum-heading > p,
    .program-v2 .program-audience-heading > p {
        font-size: 15px;
    }

    .program-v2 .program-overview-copy > p {
        font-size: 16px;
    }

    .program-v2 .program-curriculum-card p {
        font-size: 14px;
    }

    .program-v2 .program-journey-heading > p,
    .program-v2 .program-details-copy > p,
    .program-v2 .program-faq-heading > p,
    .program-v2 .program-faq-answer p {
        font-size: 15px;
    }

    .program-v2 .program-journey-step small {
        font-size: 14px;
    }

    .program-v2 .program-date-row span {
        font-size: 12px;
    }
}

@media (max-width: 1000px) {
    .program-hero-v2 {
        min-height: 730px;
    }

    .program-hero-copy h1 {
        font-size: 62px;
    }

    .program-hero-art {
        min-height: 510px;
    }

    .program-art-orbit-a {
        width: 420px;
        height: 420px;
    }

    .program-art-orbit-b {
        width: 300px;
        height: 300px;
    }

    .program-course-card {
        min-height: 405px;
        width: 245px;
    }

    .program-curriculum-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .program-curriculum-card:nth-child(5) {
        grid-column: auto;
    }

    .program-curriculum-video {
        grid-column: auto;
        grid-row: auto;
    }

    .program-overview-layout,
    .program-details-layout,
    .program-faq-layout {
        gap: 55px;
    }
}

@media (max-width: 760px) {
    .program-hero-v2 {
        min-height: auto;
        padding: 130px 0 76px;
    }

    .program-hero-grid-v2 {
        display: flex;
        flex-direction: column;
        align-items: stretch;
    }

    .program-hero-copy {
        padding: 12px 0 0;
    }

    .program-hero-copy h1 {
        font-size: clamp(52px, 13vw, 70px);
    }

    .program-hero-art {
        min-height: 465px;
        margin-top: 27px;
    }

    .program-art-orbit-a {
        width: min(420px, 100%);
        height: min(420px, 100%);
    }

    .program-art-orbit-b {
        width: 300px;
        height: 300px;
    }

    .program-course-card {
        width: 245px;
        min-height: 405px;
    }

    .program-float-orb {
        width: 170px;
        right: -25px;
    }

    .program-float-ribbon {
        width: 175px;
        left: -37px;
    }

    .program-float-pearl {
        width: 105px;
        right: -5px;
    }

    .program-hero-scroll {
        display: none;
    }

    .program-facts-grid {
        grid-template-columns: 1fr 1fr;
    }

    .program-fact {
        min-height: 85px;
        padding: 14px 13px;
    }

    .program-fact:nth-child(2) {
        border-right: 0;
    }

    .program-fact:nth-child(-n+2) {
        border-bottom: 1px solid var(--border);
    }

    .program-fact:first-child {
        padding-left: 13px;
    }

    .program-fact strong {
        font-size: 14px;
    }

    .program-overview-v2,
    .program-journey-v2,
    .program-audience-v2,
    .program-faq-v2 {
        padding: 84px 0 92px;
    }

    .program-overview-heading,
    .program-curriculum-heading,
    .program-audience-heading {
        display: block;
    }

    .program-overview-heading h2,
    .program-curriculum-heading h2,
    .program-audience-heading h2 {
        font-size: 43px;
    }

    .program-overview-heading > p,
    .program-curriculum-heading > p,
    .program-audience-heading > p {
        margin-top: 24px;
    }

    .program-overview-layout {
        display: flex;
        flex-direction: column;
        gap: 48px;
        margin-top: 43px;
    }

    .program-overview-image {
        width: 92%;
        height: 320px;
        margin: 0 auto;
    }

    .program-image-orbit {
        width: 270px;
        height: 270px;
        top: 23px;
        left: -20px;
    }

    .program-overview-copy h3 {
        font-size: 37px;
    }

    .program-curriculum-v2 {
        padding: 86px 0 94px;
    }

    .program-curriculum-grid {
        grid-template-columns: 1fr 1fr;
        gap: 11px;
        margin-top: 42px;
    }

    .program-curriculum-card {
        min-height: 235px;
        padding: 19px 16px;
    }

    .program-curriculum-card h3 {
        margin-top: 29px;
        font-size: 18px;
    }

    .program-curriculum-card p {
        font-size: 10px;
    }

    .program-curriculum-arrow {
        right: 16px;
        bottom: 20px;
    }

    .program-journey-heading h2 {
        font-size: 44px;
    }

    .program-journey-intro {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .program-journey-visual {
        min-height: 205px;
        margin: 0 0 5px;
    }

    .program-journey-visual-glow {
        top: 0;
        right: 12px;
        width: 195px;
        height: 170px;
    }

    .program-journey-visual img {
        top: -12px;
        right: 25px;
        width: 220px;
        height: 220px;
    }

    .program-journey-visual > span {
        right: 8px;
        bottom: 0;
    }

    .program-journey-line {
        grid-template-columns: 1fr;
        gap: 0;
        margin-top: 45px;
        border-top: 0;
        border-left: 1px solid var(--border);
    }

    .program-journey-progress {
        top: 0;
        left: -2px;
        width: 3px;
        height: var(--journey-fill, 0%);
        transition: height .12s linear;
    }

    .program-journey-step {
        min-height: 119px;
        padding: 0 0 26px 31px;
    }

    .program-journey-step::before {
        top: 0;
        left: -6px;
    }

    .program-journey-step strong {
        margin: 8px 0 6px;
        font-size: 22px;
    }

    .program-audience-grid {
        grid-template-columns: 1fr;
        gap: 11px;
        margin-top: 42px;
    }

    .program-audience-card {
        min-height: 300px;
    }

    .program-details-v2 {
        padding: 85px 0 92px;
    }

    .program-details-layout,
    .program-faq-layout {
        display: block;
    }

    .program-details-copy h2,
    .program-faq-heading h2 {
        font-size: 44px;
    }

    .program-date-card {
        margin-top: 43px;
        padding: 7px 19px;
    }

    .program-date-row {
        min-height: 65px;
    }

    .program-date-row strong {
        font-size: 16px;
    }

    .program-faq-list {
        margin-top: 47px;
    }

    .program-faq-item button {
        gap: 18px;
        font-size: 17px;
    }

    .program-final-cta-v2 {
        padding: 86px 0 101px;
    }

    .program-final-cta-inner h2 {
        font-size: 49px;
    }
}

@media (max-width: 430px) {
    .program-hero-actions {
        align-items: flex-start;
        flex-direction: column;
        gap: 20px;
    }

    .program-trust-row {
        gap: 8px;
    }

    .program-trust-row i {
        margin: 0 2px;
    }

    .program-trust-row strong {
        font-size: 15px;
    }

    .program-fact {
        gap: 8px;
        padding: 12px 9px;
    }

    .program-fact-icon {
        width: 30px;
        height: 30px;
    }

    .program-fact small {
        font-size: 7px;
    }

    .program-fact strong {
        font-size: 12px;
    }

    .program-curriculum-grid {
        grid-template-columns: 1fr;
    }

    .program-curriculum-card {
        min-height: 195px;
    }

    .program-curriculum-card h3 {
        margin-top: 24px;
    }

    .program-overview-image {
        width: 88%;
        height: 275px;
    }

    .program-image-caption {
        right: -18px;
    }

    .program-date-row {
        align-items: flex-start;
        flex-direction: column;
        justify-content: center;
        gap: 4px;
    }

    .program-date-row strong {
        text-align: left;
    }

    .program-final-cta-inner h2 {
        font-size: 43px;
    }
}

/* Final responsive readability overrides. */
.program-v2 .program-fact small {
    font-size: 10px;
}

.program-v2 .program-fact strong {
    font-size: 18px;
}

.program-v2 .program-overview-heading > p,
.program-v2 .program-curriculum-heading > p,
.program-v2 .program-audience-heading > p {
    font-size: 16px;
    line-height: 1.8;
}

.program-v2 .program-overview-kicker {
    font-size: 12px;
}

.program-v2 .program-overview-copy > p {
    font-size: 17px;
    line-height: 1.85;
}

.program-v2 .program-check-list {
    font-size: 14px;
    line-height: 1.6;
}

.program-v2 .program-curriculum-top {
    font-size: 13px;
}

.program-v2 .program-curriculum-card p {
    font-size: 14px;
    line-height: 1.65;
}

.program-v2 .program-journey-heading > p {
    font-size: 16px;
    line-height: 1.8;
}

.program-v2 .program-journey-step small {
    font-size: 14px;
    line-height: 1.65;
}

.program-v2 .program-audience-card p {
    font-size: 14px;
    line-height: 1.7;
}

.program-v2 .program-audience-footer {
    font-size: 12px;
}

.program-v2 .program-details-copy > p {
    font-size: 15px;
    line-height: 1.8;
}

.program-v2 .program-date-row span {
    font-size: 13px;
}

.program-v2 .program-date-row small {
    font-size: 11px;
}

.program-v2 .program-faq-heading > p {
    font-size: 16px;
    line-height: 1.8;
}

.program-v2 .program-faq-answer p {
    font-size: 15px;
    line-height: 1.8;
}

@media (max-width: 700px) {
    .program-v2 .program-overview-heading > p,
    .program-v2 .program-curriculum-heading > p,
    .program-v2 .program-audience-heading > p {
        font-size: 15px;
    }

    .program-v2 .program-overview-copy > p {
        font-size: 16px;
    }

    .program-v2 .program-journey-heading > p,
    .program-v2 .program-details-copy > p,
    .program-v2 .program-faq-heading > p,
    .program-v2 .program-faq-answer p {
        font-size: 15px;
    }

    .program-v2 .program-date-row span {
        font-size: 12px;
    }
}