/* Final program scene: the same forest continues behind both components. */
.program-final-scene { padding: 48px 0 110px; }
.program-final-container { width: min(1100px, calc(100% - 72px)); }
.preparation-panel { position: relative; display: grid; grid-template-columns: 174px minmax(0, 1fr); max-width: 910px; margin: 0 auto; min-height: 328px; padding: 44px 42px 32px 0; border: 1px solid #e9bd73b3; border-radius: 17px; background: #04162af5; box-shadow: 0 18px 45px #0003, inset 0 1px 18px #dcf0ff14; }
.preparation-frost { position: absolute; inset: 0; overflow: hidden; border-radius: inherit; pointer-events: none; }
.frost-corner { position: absolute; width: 128px; height: 128px; opacity: .7; }
.frost-corner-0 { left: 0; top: 0; }
.frost-corner-1 { right: 0; top: 0; transform: rotate(90deg); }
.frost-corner-2 { right: 0; bottom: 0; transform: rotate(180deg); }
.frost-corner-3 { left: 0; bottom: 0; transform: rotate(270deg); }
.preparation-crown img { width: 34px; height: 34px; }
.preparation-separator img { width: 22px; height: 22px; }
.preparation-crown { position: absolute; top: -18px; left: 50%; transform: translateX(-50%); background: #04162a; padding: 0 9px; display: flex; }
.preparation-symbol { position: relative; align-self: stretch; display: flex; align-items: flex-start; justify-content: center; padding-top: 26px; color: #e9bd73; margin-right: 35px; border-right: 1px solid #e9bd737a; }
.preparation-symbol > .line-icon { width: 76px; height: 76px; stroke-width: 1.1; }
.preparation-separator { position: absolute; right: -12px; top: 50%; background: #04162a; padding-block: 5px; display: flex; }
.preparation-spark { position: absolute; font-size: 14px; line-height: 1; }
.preparation-spark-one { top: 67px; left: 23px; }
.preparation-spark-two { top: 50px; right: 14px; }
.preparation-copy { position: relative; min-width: 0; }
.preparation-copy h2 { margin: 0 0 15px; color: #f8f3eb; font: 500 42px/1.1 'Cormorant Garamond', Georgia, serif; }
.preparation-copy p { max-width: 640px; color: #e8eaf0; font: 400 20px/1.45 'Cormorant Garamond', Georgia, serif; }
.program-page .preparation-faq { display: inline-flex; align-items: center; justify-content: center; gap: 22px; min-height: 54px; margin-top: 21px; padding: 12px 23px; border: 1px solid #e9bd73; border-radius: 11px; color: #f5d595; background: #061829; font-size: 16px; line-height: 1.4; box-shadow: none; text-decoration: none; }
.preparation-faq span, .final-booking-button span { display: inline-block; font-size: 27px; line-height: 1; }
.program-final-invitation { max-width: 1000px; margin: 34px auto 0; text-align: center; }
.program-gold-divider { display: flex; align-items: center; justify-content: center; gap: 13px; width: min(540px, 88%); margin: 0 auto; color: #e9bd73; pointer-events: none; }
.program-gold-divider span { height: 1px; flex: 1; background: linear-gradient(90deg, transparent, #e9bd73); }
.program-gold-divider span:last-child { transform: rotate(180deg); }
.program-gold-divider img { width: 34px; height: 34px; flex-shrink: 0; }
.program-final-invitation h2 { font: 500 clamp(52px, 4.5vw, 76px)/1.1 'Cormorant Garamond', Georgia, serif; margin: 22px 0 9px; color: #f8f3eb; background: linear-gradient(#fff8ec 20%, #ead6ad); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
.program-final-invitation > p { max-width: 660px; margin: 17px auto 0; color: #f0edf0; font: 400 21px/1.5 'Cormorant Garamond', Georgia, serif; }
.final-booking-wrap { position: relative; isolation: isolate; width: 306px; max-width: 100%; margin: 32px auto 0; }
.final-booking-wrap::before { content: ''; position: absolute; inset: -18px -28px; z-index: -1; opacity: .7; pointer-events: none; background: radial-gradient(circle at 8% 43%, #e9bd73 0 1px, transparent 2px), radial-gradient(circle at 89% 22%, #e9bd73 0 1px, transparent 2px), radial-gradient(circle at 94% 70%, #e9bd73 0 1px, transparent 2px), radial-gradient(circle at 18% 85%, #e9bd73 0 1px, transparent 2px), radial-gradient(circle at 77% 92%, #e9bd73 0 1px, transparent 2px); }
.program-page .final-booking-button { display: inline-flex; align-items: center; justify-content: center; gap: 22px; width: 306px; max-width: 100%; min-height: 64px; padding: 12px 30px; color: #fff8ed; background: linear-gradient(110deg, #7e1e32, #a32840 55%, #7d1c30); border: 1px solid #e9bd73; border-radius: 999px; box-shadow: 0 0 0 2px #e9bd731a, 0 0 25px #e9bd734d, 0 12px 35px #5005144d; font: 500 24px/1.3 'Cormorant Garamond', Georgia, serif; text-decoration: none; }
.final-booking-button span { color: #e9bd73; }
.program-page .preparation-faq:focus-visible, .program-page .final-booking-button:focus-visible { outline: 3px solid #f5d595; outline-offset: 5px; }
@media (hover: hover) {
 .program-page .preparation-faq:hover { background: #102840; border-color: #ffe4b0; box-shadow: 0 0 18px #e9bd7326; }
 .program-page .final-booking-button:hover { transform: translateY(-3px); box-shadow: 0 0 0 2px #e9bd7329, 0 0 32px #e9bd735e, 0 12px 35px #5005144d; }
 .preparation-faq:hover span, .final-booking-button:hover span { transform: translateX(4px); }
}
@media (prefers-reduced-motion: no-preference) {
 .preparation-faq, .final-booking-button, .preparation-faq span, .final-booking-button span { transition: transform .3s ease, box-shadow .3s ease, background .3s ease; }
 .program-final-scene .final-pending { opacity: 0; transform: translateY(28px); transition: opacity .9s ease, transform .9s ease; }
 .program-final-scene .final-pending.is-revealed { opacity: 1; transform: none; }
 .final-pending .preparation-symbol, .final-pending .preparation-copy > *, .final-pending.program-final-invitation > * { opacity: 0; transform: translateY(12px); transition: opacity .8s ease, transform .8s ease; }
 .final-pending.is-revealed .preparation-symbol, .final-pending.is-revealed .preparation-copy > *, .final-pending.is-revealed.program-final-invitation > * { opacity: 1; transform: none; transition-delay: .12s; }
 .final-pending.is-revealed .preparation-copy p, .final-pending.is-revealed.program-final-invitation h2 { transition-delay: .2s; }
 .final-pending.is-revealed .preparation-faq, .final-pending.is-revealed.program-final-invitation > p { transition-delay: .3s; }
 .final-pending.is-revealed.program-final-invitation .final-booking-wrap { transition-delay: .4s; }
}
@media (max-width: 1199px) {
 .program-final-container { width: calc(100% - 64px); }
 .preparation-panel { grid-template-columns: 140px minmax(0, 1fr); padding-right: 30px; }
 .preparation-symbol { margin-right: 25px; }
 .preparation-copy h2 { font-size: 38px; }
 .preparation-copy p { font-size: 19px; }
 .preparation-spark-one { left: 12px; }
 .preparation-spark-two { right: 5px; }
}
@media (max-width: 767px) {
 .program-final-scene { padding: 38px 0 80px; }
 .program-final-container { width: calc(100% - 36px); }
 .preparation-panel { display: flex; flex-direction: column; padding: 30px 24px 28px; }
 .preparation-symbol { width: 100%; height: 77px; padding: 0; margin: 0 0 20px; border: 0; align-items: center; }
 .preparation-symbol > .line-icon { width: 66px; height: 66px; }
 .preparation-separator { display: none; }
 .preparation-spark-one { left: calc(50% - 50px); top: 43px; }
 .preparation-spark-two { right: calc(50% - 50px); top: 20px; }
 .frost-corner { width: 75px; height: 75px; opacity: .55; }
 .preparation-copy h2 { font-size: 36px; }
 .preparation-copy p { font-family: inherit; font-size: 16px; line-height: 1.55; }
 .program-page .preparation-faq { width: 100%; gap: 12px; padding-inline: 14px; font-size: 14px; }
 .program-final-invitation { margin-top: 30px; }
 .program-final-invitation h2 { font-size: 46px; margin-top: 20px; }
 .program-final-invitation > p { font-family: inherit; font-size: 17px; line-height: 1.55; }
 .final-booking-wrap { margin-top: 26px; }
 .program-page .final-booking-button { width: min(306px, 100%); font-size: 23px; }
 .final-booking-wrap::before { inset-inline: -8px; opacity: .45; }
}
@media (prefers-reduced-motion: reduce) {
 .program-final-scene *, .program-final-scene *::before { animation: none !important; transition: none !important; }
}
