/* A continuous winter location, shared by the hero and all program content. */
.program-page { isolation: isolate; }
.program-page::before { content: ''; position: fixed; inset: 0; z-index: -2; background: linear-gradient(90deg, #03142250, #031422b8 58%, #03142280), url('forest-lanterns.webp') center bottom / cover; pointer-events: none; }
.program-page::after { content: ''; position: fixed; inset: -100px 0 0; z-index: -1; pointer-events: none; opacity: .23; background: radial-gradient(circle 1px at 40px 60px, #edf8ff 80%, transparent), radial-gradient(circle 1px at 210px 170px, #c9eaff 80%, transparent), radial-gradient(circle 2px at 410px 280px, #eaf7ff 45%, transparent); background-size: 550px 500px; }
.program-page main .section, .program-page .program-scene, .program-page .cta-section { background: transparent; }
.program-information-scene { padding: 24px 0 64px; }
.program-information-container { width: min(1380px, calc(100% - 100px)); }
.winter-panel { position: relative; isolation: isolate; display: grid; overflow: hidden; border: 1px solid #b9dcf18c; border-radius: 16px; background: #041629f2; box-shadow: inset 0 0 20px #b9dcf10d, 0 5px 24px #0003; }
.winter-panel::after { content: ''; position: absolute; inset: 0; border-radius: inherit; background: url('program-frost.svg') center / 100% 100%; opacity: .38; pointer-events: none; z-index: 2; }
.winter-panel + .winter-panel { margin-top: 24px; }
.winter-panel-audience { grid-template-columns: minmax(0, .37fr) minmax(0, .63fr); }
.winter-panel-image { position: relative; min-width: 0; min-height: 260px; --info-from: translateX(-12px); }
.winter-panel-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.winter-panel-image::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, transparent 55%, #041629); pointer-events: none; }
.winter-panel-copy { min-width: 0; padding: 23px 35px 25px 24px; --info-from: translateX(12px); }
.winter-panel h2 { color: #f5f2ed; font: 500 52px/1.08 'Cormorant Garamond', Georgia, serif; letter-spacing: -.025em; margin-bottom: 15px; }
.winter-panel-copy > p { max-width: 650px; color: #dfe5ee; font-size: 18px; line-height: 1.5; }
.winter-location { display: flex; align-items: flex-start; gap: 17px; margin-top: 18px; }
.winter-location > .line-icon { width: 38px; height: 38px; flex-shrink: 0; color: #e9bd73; }
.winter-location > p { max-width: 650px; color: #dfe5ee; font-size: 17px; line-height: 1.5; }
.winter-panel-includes { grid-template-columns: minmax(0, .3fr) minmax(0, .5fr) minmax(210px, .2fr); }
.winter-panel-includes .winter-panel-image { --info-from: scale(.97); }
.winter-panel-includes .winter-panel-copy { padding-inline: 24px; }
.winter-includes { display: grid; gap: 11px; list-style: none; padding: 0; margin: 0; }
.winter-includes li { display: flex; align-items: flex-start; gap: 15px; color: #e5eaf2; font-size: 16px; line-height: 1.5; }
.winter-includes .line-icon { width: 26px; height: 26px; flex-shrink: 0; color: #e9bd73; }
.winter-panel-note { position: relative; align-self: center; margin: 26px 0; padding: 17px 24px 17px 26px; border-left: 1px solid #e9bd7380; }
.winter-note-ornament { display: flex; position: absolute; top: 50%; left: 0; transform: translate(-50%, -50%); padding-block: 5px; background: #041629; color: #e9bd73; font-size: 20px; }
.winter-panel-note p { color: #dfe5ee; font-size: 16px; line-height: 1.55; }
.program-timeline { margin-top: 24px; }
.program-timeline > header { text-align: center; margin: 0 auto 36px; max-width: 1100px; }
.program-timeline h2 { color: #f5f2ed; font: 500 clamp(42px, 3.5vw, 56px)/1.1 'Cormorant Garamond', Georgia, serif; letter-spacing: -.025em; }
.program-timeline > header p { max-width: 900px; margin: 20px auto 0; font-size: 17px; line-height: 1.6; color: #dfe5ee; }
.timeline-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: 1fr; gap: 28px; list-style: none; margin: 0; padding: 0; }
.timeline-grid[data-step-count="4"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.timeline-card { position: relative; isolation: isolate; display: grid; grid-template-columns: 58px minmax(0, 1fr); gap: 20px; padding: 31px 29px 30px; min-width: 0; background: #041629eb; border-radius: 18px; box-shadow: 0 0 18px #e9bd7312; }
.timeline-card::before { content: ''; position: absolute; inset: 0; background: none center / 100% 100%; pointer-events: none; z-index: -1; }
.timeline-snowflake { position: absolute; left: 50%; top: 12px; transform: translate(-50%, -50%); display: flex; color: #e9bd73; pointer-events: none; }
.timeline-snowflake .line-icon { width: 30px; height: 30px; stroke-width: 1.1; }
.timeline-number { display: grid; place-items: center; width: 58px; height: 58px; border: 1.5px solid #e9bd73; border-radius: 50%; color: #e9bd73; font: 500 31px/1 'Cormorant Garamond', Georgia, serif; }
.timeline-card h3 { overflow-wrap: anywhere; color: #f5f2ed; font: 500 28px/1.12 'Cormorant Garamond', Georgia, serif; margin: 4px 0 14px; }
.timeline-card p { color: #d9e1ed; font-size: 15px; line-height: 1.6; }
@media (prefers-reduced-motion: no-preference) {
  .program-page::after { animation: program-info-snow 32s linear infinite; }
  .program-information-scene .info-pending { opacity: 0; transform: var(--info-from, translateY(14px)); transition: opacity .75s ease var(--info-delay, 0ms), transform .75s ease var(--info-delay, 0ms); }
  .program-information-scene .info-pending.is-revealed { opacity: 1; transform: none; }
  .timeline-card { transition: transform .3s, box-shadow .3s; }
  .timeline-card:not(.info-pending):hover { transform: translateY(-3px); box-shadow: 0 0 22px #e9bd7329; }
}
@keyframes program-info-snow { to { transform: translateY(100px); } }
@media (max-width: 1439px) {
  .program-information-container { width: calc(100% - 72px); }
  .winter-panel-copy { padding-inline: 22px; }
  .winter-panel h2 { font-size: 48px; }
  .winter-panel-copy > p { font-size: 17px; }
  .winter-location > p { font-size: 16px; }
  .winter-panel-includes { grid-template-columns: minmax(0, .26fr) minmax(0, .51fr) minmax(200px, .23fr); }
  .winter-panel-note { padding-inline: 22px; }
  .timeline-grid { gap: 24px; }
  .timeline-card { grid-template-columns: 54px minmax(0, 1fr); padding-inline: 25px; gap: 17px; }
  .timeline-number { width: 54px; height: 54px; }
  .timeline-card h3 { font-size: 26px; }
}
@media (max-width: 1199px) and (min-width: 768px) {
  .program-information-container { width: calc(100% - 64px); }
  .winter-panel-audience { grid-template-columns: minmax(0, .32fr) minmax(0, .68fr); }
  .winter-panel-includes { grid-template-columns: minmax(0, .32fr) minmax(0, .68fr); }
  .winter-panel-includes .winter-panel-image { grid-row: 1 / 3; }
  .winter-panel-note { grid-column: 2; margin: 0 22px 24px; padding: 18px 0 0; border-left: 0; border-top: 1px solid #e9bd7380; }
  .winter-note-ornament { top: 0; left: 50%; transform: translate(-50%, -50%); padding: 0 8px; }
  .timeline-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .timeline-grid[data-step-count="3"] > li:last-child { grid-column: 1 / -1; width: calc((100% - 24px) / 2); justify-self: center; }
}
@media (max-width: 767px) {
  .program-information-scene { padding: 20px 0 44px; }
  .program-information-container { width: calc(100% - 36px); }
  .winter-panel-audience, .winter-panel-includes { grid-template-columns: minmax(0, 1fr); }
  .winter-panel-image { min-height: 0; height: 210px; --info-from: translateY(10px); }
  .winter-panel-image img { object-position: center 45%; }
  .winter-panel-image::after { background: linear-gradient(180deg, transparent 45%, #041629); }
  .winter-panel-copy, .winter-panel-includes .winter-panel-copy { padding: 0 22px 25px; }
  .winter-panel h2 { font-size: clamp(36px, 10vw, 42px); margin-bottom: 17px; }
  .winter-panel-copy > p, .winter-location > p { font-size: 16px; line-height: 1.6; }
  .winter-location { gap: 12px; }
  .winter-location > .line-icon { width: 32px; height: 32px; }
  .winter-includes { gap: 14px; }
  .winter-includes li { gap: 12px; font-size: 16px; }
  .winter-includes .line-icon { width: 25px; height: 25px; }
  .winter-panel-note { margin: 0 22px 25px; padding: 20px 0 0; border-left: 0; border-top: 1px solid #e9bd7380; }
  .winter-note-ornament { top: 0; left: 50%; transform: translate(-50%, -50%); padding: 0 8px; }
  .winter-panel-note p { font-size: 16px; }
  .program-timeline { margin-top: 28px; }
  .program-timeline > header { margin-bottom: 30px; }
  .program-timeline h2 { font-size: clamp(35px, 9.6vw, 42px); }
  .program-timeline > header p { font-size: 16px; }
  .timeline-grid, .timeline-grid[data-step-count="4"] { grid-template-columns: minmax(0, 1fr); grid-auto-rows: auto; gap: 25px; }
  .timeline-card { grid-template-columns: 50px minmax(0, 1fr); padding: 30px 24px; gap: 15px; }
  .timeline-number { width: 50px; height: 50px; font-size: 28px; }
  .timeline-card h3 { font-size: 25px; margin-top: 3px; }
  .timeline-snowflake .line-icon { width: 26px; height: 26px; }
}

.winter-note-ornament .line-icon { width: 18px; height: 18px; stroke-width: 1; }
