.programs-inner { padding:48px; }
.programs-head { display:block; margin-bottom:18px; }
.programs-head h2 { max-width:740px; line-height:1.16; }
.programs-eyebrow { margin-bottom:16px; }
.programs-copy { max-width:620px; margin-top:20px; }
.program-carousel { --spread:215px; --card-width:420px; }
.program-carousel-stage { display:grid; gap:20px; }
.orbit-card { box-sizing:border-box; padding:28px; border:1px solid #E4DDED; border-radius:24px; background:#FBF9FE; box-shadow:0 12px 30px rgba(53,32,95,.09); }
.is-enhanced .program-carousel-stage { display:block; position:relative; height:410px; perspective:1200px; isolation:isolate; touch-action:pan-y; }
.is-enhanced .orbit-card { position:absolute; top:30px; left:50%; width:var(--card-width); min-height:342px; transform:translateX(calc(-50% + var(--step) * var(--spread))) translateY(calc(var(--distance) * 14px)) translateZ(calc(var(--distance) * -180px)) rotateY(calc(var(--step) * -16deg)); transition:transform .45s cubic-bezier(.22,.8,.25,1),box-shadow .4s,background .4s; cursor:pointer; }
.is-enhanced .orbit-card > * { opacity:calc(1 - var(--distance) * .23); transition:opacity .4s; }
.orbit-card[data-active="true"] { background:white; border-color:#D4C4EA; box-shadow:0 20px 45px rgba(53,32,95,.15); cursor:default; }
.orbit-country { margin:0 0 18px; color:#706580; font-size:12px; font-weight:750; letter-spacing:.02em; }
.orbit-icon { display:grid; place-items:center; width:52px; height:52px; border-radius:16px; background:#EDE6FA; color:#4B2686; font-size:29px; font-weight:800; margin-bottom:18px; }
.orbit-card h3 { color:#35205F; font-size:23px; line-height:1.2; letter-spacing:-.035em; margin:0 0 12px; overflow-wrap:anywhere; }
.orbit-copy { font-size:14px; line-height:1.65; color:#5F5371; margin:0 0 20px; }
.orbit-card-experimental .orbit-icon,.orbit-card-experimental .program-meta span { background:#F4EDDF; color:#765B34; }
.program-carousel-nav { display:flex; align-items:center; justify-content:center; gap:20px; margin-top:6px; }
.program-carousel-nav[hidden] { display:none; }
.program-dots { display:flex; align-items:center; justify-content:center; }
.program-dot { display:grid; place-items:center; width:36px; height:44px; padding:0; background:transparent; border:0; border-radius:12px; cursor:pointer; }
.program-dot::after { content:''; width:8px; height:8px; border-radius:20px; background:#CFC2E2; }
.program-dot[aria-pressed="true"]::after { width:24px; background:#4B2686; }
.program-dot:hover { background:#EDE6FA; }
.program-carousel-arrow { display:grid; place-items:center; width:44px; height:44px; flex-shrink:0; border:1px solid #DED3EC; border-radius:50%; background:#FBF9FE; cursor:pointer; color:#4B2686; }
.program-carousel-arrow:hover { background:#EDE6FA; }
.program-carousel-arrow span { width:8px; height:8px; border-top:2px solid currentColor; border-right:2px solid currentColor; }
.program-carousel-arrow.next span { transform:translateX(-2px) rotate(45deg); }
.program-carousel-arrow.previous span { transform:translateX(2px) rotate(-135deg); }
.program-carousel-arrow:focus-visible,.program-carousel-stage:focus-visible,.program-dot:focus-visible { outline:3px solid #9972C6; outline-offset:3px; }
.programs-roadmap { margin:22px 0 0; font-size:13px; text-align:center; line-height:1.6; color:var(--muted); }
.carousel-status { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media(max-width:900px) { .program-carousel { --spread:150px; --card-width:380px; } }
@media(max-width:600px) {
 .programs-inner { padding:28px 20px; }
 .programs-head { margin-bottom:10px; }
 .program-carousel { --spread:110px; --card-width:min(290px,calc(100% - 20px)); }
 .is-enhanced .program-carousel-stage { height:460px; }
 .orbit-card { padding:22px; border-radius:20px; }
 .is-enhanced .orbit-card { top:26px; min-height:395px; }
 .orbit-card h3 { font-size:21px; }
 .program-carousel-nav { gap:8px; }
 .program-dot { width:32px; }
}
@media(prefers-reduced-motion:reduce) { .is-enhanced .orbit-card,.is-enhanced .orbit-card > * { transition:none; } }
