.program-page{background:#f7f4fb;color:#241052}
.pg-hero{position:relative;isolation:isolate;overflow:hidden;padding:118px 0 44px;color:#fff;background:linear-gradient(110deg,rgba(19,9,46,.98),rgba(48,20,84,.94) 62%,rgba(90,44,132,.86)),url('../images/hero-poster.jpg') center/cover}
.pg-hero-inner{position:relative;z-index:1}
.pg-breadcrumb{display:flex;gap:12px;margin-bottom:28px;font-size:13px;color:#c9bada}
.pg-breadcrumb a:hover{color:#f2c75f}
.pg-kicker{margin:0 0 14px;color:#f2c75f;font-size:13px;font-weight:700;letter-spacing:.12em}
.pg-kicker span{margin:0 8px}.pg-kicker sup{font-size:.7em}
.pg-hero h1{margin:0 0 12px;font-size:clamp(32px,3.5vw,52px);line-height:1.25;letter-spacing:.01em}
.pg-hero-subtitle{margin:0;color:#e1d8ec;font-size:17px;line-height:1.6}
.pg-meta{display:flex;flex-wrap:wrap;gap:14px 30px;margin-top:24px;font-size:14px;color:#f0e9f7}
.pg-meta>span{display:flex;align-items:center;gap:9px}.pg-meta .pg-icon{color:#f2c75f}
.pg-icon{display:inline-block;width:20px;height:20px;flex:0 0 20px;vertical-align:middle}
.pg-skyline{position:absolute;z-index:0;right:3%;bottom:0;width:min(46%,600px);max-height:240px;object-fit:contain;object-position:bottom;opacity:.15;pointer-events:none}
.program-page .pg-content{padding-top:38px;padding-bottom:64px;scroll-margin-top:105px}
.pg-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:24px}
.pg-eyebrow{margin:0 0 9px;font-size:11px;letter-spacing:.14em;font-weight:700;color:#7a648e}
.pg-section-heading h2{margin:0;font-size:25px;line-height:1.4}
.pg-section-heading>p{margin:0 0 4px;color:#7b6d8b;font-size:12px}
.pg-dates{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:20px}
.pg-date{position:relative;display:grid;gap:7px;padding:18px 22px;background:#fff;border:1px solid #e7def0;border-radius:12px;color:#746683;transition:background .18s,border-color .18s}
.pg-date strong{font-size:24px;font-weight:750;color:#34204e;line-height:1.2}.pg-date>span:last-child{font-size:12px}.pg-day-number{font-size:10px;font-weight:700;letter-spacing:.1em;color:#8d7a9e}
.pg-date.is-active{background:linear-gradient(115deg,#43206b,#6e3aaa);border-color:#63369b;color:#e7dcf3;box-shadow:0 6px 15px rgba(57,23,99,.12)}
.pg-date.is-active strong,.pg-date.is-active .pg-day-number{color:#ffe09b}.pg-date.is-active:after{content:'';position:absolute;right:17px;top:20px;width:7px;height:7px;border-radius:50%;background:#f2c75f}
.pg-date:hover{border-color:#916bb9}.pg-date:focus-visible,.pg-filter select:focus-visible,.pg-filter button:focus-visible,.pg-table-scroll:focus-visible{outline:3px solid #bd8c35;outline-offset:3px}
.pg-panel{background:#fff;border:1px solid #e8e0f0;border-radius:14px;overflow:hidden;box-shadow:0 8px 28px rgba(36,16,82,.035)}
.pg-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 24px;border-bottom:1px solid #eee7f4}
.pg-toolbar h3{margin:0;font-size:19px;line-height:1.4}.pg-toolbar p{margin:6px 0 0;color:#8b7b9b;font-size:12px}
.pg-filter{display:flex;align-items:center;gap:10px;font-size:13px}.pg-filter label{color:#746382;white-space:nowrap}
.pg-filter select{max-width:230px;min-height:38px;min-width:130px;border:1px solid #e1d7eb;border-radius:6px;padding:7px 28px 7px 10px;background:#fcfaff;color:#3f2c55;font:inherit}
.pg-filter button{min-height:38px;padding:7px 15px;border:0;border-radius:6px;background:#f6e5bb;color:#442b62;font:inherit;font-weight:700;cursor:pointer}
.pg-table-scroll{position:relative;overflow-x:auto;padding:14px;-webkit-overflow-scrolling:touch}
.pg-scroll-controls{display:flex;align-items:center;gap:12px;padding:12px 20px 0}.pg-scroll-controls[hidden]{display:none}
.pg-scroll-controls button{flex-shrink:0;min-height:40px;padding:7px 14px;border:1px solid #ded0eb;border-radius:6px;background:#f6effb;color:#603592;font:inherit;font-size:13px;font-weight:650;cursor:pointer}
.pg-scroll-controls button:hover:not(:disabled){background:#603592;color:#fff}.pg-scroll-controls button:disabled{opacity:.4;cursor:default}
.pg-scroll-position{flex:1;min-width:0;height:40px;margin:0;accent-color:#603592;cursor:ew-resize}
.pg-scroll-controls button:focus-visible,.pg-scroll-position:focus-visible{outline:3px solid #bd8c35;outline-offset:3px}
.pg-table{border-collapse:separate;border-spacing:6px;width:100%;min-width:calc(120px + var(--pg-columns)*240px);table-layout:fixed}
.pg-room-col{width:110px}.pg-table th{position:sticky;left:0;z-index:1;padding:16px 10px;border-radius:6px;background:#603592;color:#ffe2a1;text-align:center;overflow-wrap:anywhere;font-size:15px;font-weight:700;line-height:1.65}
.pg-table td{height:88px;padding:0;vertical-align:top;border-radius:6px;background:#f6effb}
.pg-session{display:flex;flex-direction:column;min-height:88px;padding:8px 10px;color:#3b2a4d;overflow-wrap:anywhere;border-radius:6px}
.pg-time{display:flex;align-items:center;gap:6px;margin:0 0 5px;font-size:15px;font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap}.pg-time .pg-icon{width:16px;height:16px;flex-basis:16px}
.pg-session h4{display:flex;align-items:flex-start;gap:6px;font-size:13px;font-weight:650;line-height:1.45;margin:0}.pg-session h4 span{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.pg-session h4 .pg-icon{width:15px;height:15px;flex-basis:15px;margin-top:2px}
.pg-session-red{color:#bd273c}.pg-table td.pg-unused{background:#faf8fc;color:#c4b9d0;text-align:center;vertical-align:middle}
.pg-scroll-hint{display:none;margin:12px 20px 0;color:#8b7b9b;font-size:11px}
.pg-empty{padding:48px 24px 55px;text-align:center;background:radial-gradient(ellipse at 50% 40%,#f7f0ff,transparent 65%)}
.pg-empty>.pg-icon{width:50px;height:50px;color:#9565c5;stroke-width:1.2}.pg-empty-kicker{color:#9c80b6;font-size:10px;letter-spacing:.2em;margin:18px 0 9px}.pg-empty h3{margin:0 0 12px;font-size:23px}.pg-empty>p:last-child{max-width:470px;margin:0 auto;font-size:14px;line-height:1.9;color:#8a789a}
.pg-note{display:flex;justify-content:center;align-items:flex-start;gap:7px;margin:20px 0 0;font-size:12px;line-height:1.8;color:#8b7b9b}.pg-note .pg-icon{width:16px;height:16px;flex-basis:16px;margin-top:3px}
.pg-sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@media(max-width:760px){.pg-scroll-controls{gap:8px;padding:10px 15px 0}.pg-scroll-controls button{padding:7px 10px;font-size:12px}}
@media print{.pg-scroll-controls{display:none!important}}
@media(min-width:1600px){.pg-hero{padding-top:134px;padding-bottom:48px}}
@media(max-width:760px){.pg-hero{padding:112px 0 32px}.pg-breadcrumb{margin-bottom:22px}.pg-kicker{font-size:11px}.pg-hero-subtitle{font-size:14px}.pg-meta{gap:13px;font-size:12px;flex-direction:column}.pg-skyline{width:80%;opacity:.08}.program-page .pg-content{padding-top:28px;padding-bottom:40px}.pg-section-heading{align-items:flex-start;flex-direction:column;gap:10px}.pg-section-heading h2{font-size:22px}.pg-dates{gap:6px}.pg-date{padding:14px 8px;gap:8px}.pg-date strong{font-size:19px}.pg-date .pg-day-number{font-size:9px}.pg-date>span:last-child{font-size:10px}.pg-date.is-active:after{display:none}.pg-toolbar{padding:18px 15px;align-items:flex-start;flex-direction:column;gap:16px}.pg-toolbar h3{font-size:18px}.pg-filter{width:100%;gap:8px}.pg-filter select{flex:1;min-width:0;max-width:none}.pg-filter label{font-size:12px}.pg-scroll-hint{display:block}.pg-table-scroll{padding:9px}.pg-room-col{width:90px}.pg-table{min-width:calc(100px + var(--pg-columns)*230px)}.pg-table th{font-size:13px;padding:12px 6px}.pg-empty{padding:40px 20px}.pg-empty h3{font-size:21px}.pg-empty>p:last-child{font-size:13px}.pg-note{justify-content:flex-start;font-size:11px}}
@media(max-width:760px){.pg-date strong{font-size:clamp(12px,3.8vw,18px);white-space:nowrap}.pg-date{padding-left:6px;padding-right:6px}}
@media print{.site-header,.footer,.cookie-notice,.pg-filter,.pg-scroll-hint{display:none!important}.pg-hero{padding:20px 0;color:#241052;background:#fff}.pg-breadcrumb,.pg-skyline{display:none}.pg-hero-subtitle,.pg-meta{color:#48345c}.pg-table-scroll{overflow:visible;padding:0}.pg-table{min-width:0;font-size:10px}.pg-session{padding:8px;min-height:100px}.pg-session h4{font-size:10px}.pg-time{font-size:11px}.pg-room-col{width:70px}.pg-table th{position:static;font-size:11px}.pg-table tr{break-inside:avoid}.pg-panel{box-shadow:none}.pg-dates{display:none}}
