/* Shared course-session timeline (home + schedule page); markup from cmv2_schedule_timeline(). */
.c-home-program :where(h1, h2, h3, p, ol, dl, dd) { margin: 0; }
.c-home-program :where(ol) { padding: 0; list-style: none; }
.c-home-program { position: relative; isolation: isolate; overflow: hidden; padding-block: 140px; background: #2f0811; color: #fff; }
.c-home-program::before { content: ""; position: absolute; inset: 0; z-index: -1; background: url("../img/home/program-bg.webp") center / cover; mix-blend-mode: soft-light; opacity: .2; }
.c-home-program__title { margin-bottom: 39px; font: 500 44px/50px var(--font-display); text-align: center; }
.c-home-program__scroller { overflow-x: auto; border-radius: 13px; scrollbar-width: thin; scrollbar-color: rgba(255, 255, 255, .3) transparent; }
.c-home-program__track { display: flex; align-items: center; gap: 177px; box-sizing: content-box; width: max-content; height: 299px; padding-inline: 100px; }
.c-home-program__month { position: relative; display: grid; flex: none; place-items: center; width: 89px; height: 37px; }
.c-home-program__month:not(:last-child)::after { content: ""; position: absolute; top: 18px; left: calc(100% + 59px); width: 59px; height: 1px; background: rgba(255, 255, 255, .24); }
.c-home-program__label { padding: 8px 17px; border-radius: 38px; font: 500 15px/20px var(--font-display); white-space: nowrap; opacity: .5; }
.c-home-card { position: absolute; left: 50%; box-sizing: border-box; width: 277px; height: 97px; padding: 7px 17px; margin-left: -138.5px; border: 1px solid rgba(255, 255, 255, .1); border-radius: 13px; background: rgba(0, 0, 0, .28); box-shadow: 2px 4px 5.1px rgba(0, 0, 0, .25); }
.c-home-program__month:nth-child(odd) .c-home-card { top: calc(100% + 25px); }
.c-home-program__month:nth-child(even) .c-home-card { bottom: calc(100% + 25px); }
.c-home-card.is-ended { opacity: .7; }
.c-home-card.is-open { background: url("../img/home/program-open-gradient.svg") -186px -197px / 649.5px 454px no-repeat, rgba(0, 0, 0, .28); background-blend-mode: lighten; backdrop-filter: blur(4px); }
.c-home-card__status { position: absolute; top: -9px; left: 206px; padding: 4px 12px; border-radius: var(--r-xl); background: var(--c-crimson); box-shadow: inset 0 2px 0 rgba(255, 255, 255, .39); font: 500 12px/20px var(--font-ui); white-space: nowrap; }
.c-home-card.is-ended .c-home-card__status { left: 203px; background: rgba(0, 0, 0, .14); box-shadow: -2px 3px 1px rgba(0, 0, 0, .25); opacity: .4; }
.c-home-card__code { margin-bottom: -5px; color: rgba(255, 255, 255, .6); font: 500 14px/20px var(--font-ui); white-space: nowrap; }
.c-home-card__name { font: 500 16px/27px var(--font-display); white-space: nowrap; }
.c-home-card__meta { display: flex; gap: 87px; font: 500 12px/20px var(--font-ui); white-space: nowrap; }
.c-home-card__meta dd { font-size: 14px; }
.c-home-card__meta div:first-child { width: 75px; }
.c-home-program--page .c-home-program__title { font-size: 50px; line-height: 56px; text-transform: uppercase; }
@media (max-width: 1023px) { .c-home-program { padding-block: 70px; } .c-home-program--page { padding-top: 140px; } .c-home-program--page .c-home-program__title { font-size: 34px; line-height: 40px; } }
