/* Public programme: real artwork, chronological reading, warm TiK palette. */
.shop-page.program-page{--program-paper:#f7f4ef;--program-ink:#292c2a;--program-muted:#62645e;--program-red:#ab332d;background:var(--program-paper)!important;color:var(--program-ink)}
.program-page .shop-header{max-width:1560px;width:calc(100% - 48px);margin:16px auto 0;border-radius:12px;box-shadow:none;background:rgba(255,255,255,.84)!important;border:0!important;backdrop-filter:blur(12px)}
.program-page .shop-brand img{border-radius:0;background:none;width:48px!important;height:48px!important}
.program-page .shop-brand strong{font-size:1.06rem;letter-spacing:-.02em}
.program-page .shop-brand small{color:var(--program-muted);font-size:.8rem}
.program-page .public-calendar-nav a{display:inline-flex;align-items:center;min-height:44px}
.program-page .shop-main{width:calc(100% - 64px)!important;max-width:1480px!important;margin:auto;padding:36px 0 72px!important}
.program-intro{display:flex;justify-content:space-between;align-items:end;gap:32px;padding-bottom:36px}
.program-intro h1{margin:0;font-size:clamp(2.2rem,3.5vw,3.5rem);font-weight:750;line-height:1.06;letter-spacing:-.035em}
.program-intro p{margin:0 0 4px;color:var(--program-muted);font-size:1rem;line-height:1.65}
.program-toolbar{display:flex;align-items:end;justify-content:space-between;gap:20px;padding:24px 0;border-block:1px solid #dcd8d0;scroll-margin-top:100px}
.program-search-panel{flex:1;min-width:0}
.program-search-panel>summary{display:list-item;list-style-position:inside;min-height:44px;padding:12px 0;font-size:.92rem;font-weight:650;cursor:pointer}
.program-search-panel[open]>.program-filter{margin-top:14px}
.program-filter{display:flex;align-items:end;flex-wrap:wrap;gap:12px;margin:0}
.program-filter label{display:grid;gap:7px;color:var(--program-muted);font-size:.8rem;font-weight:600}
.program-filter input,.program-filter select{height:46px;min-width:210px;max-width:100%;margin:0;border:1px solid #d5d1c9;border-radius:8px;background:#fff;color:var(--program-ink);padding:0 13px;font:inherit;font-size:.92rem}
.program-filter input{width:280px}
.program-filter input::placeholder{color:#70716c;opacity:1}
.program-filter button{min-height:46px;padding:0 22px;border:0;border-radius:8px;background:var(--program-ink);color:#fff;font-size:.9rem;font-weight:650;cursor:pointer;box-shadow:none}
.program-filter button:hover{background:#434640}
.program-filter>a,.program-empty>a{display:inline-flex;align-items:center;min-height:46px;color:var(--program-red);text-underline-offset:4px}
.program-count{padding-bottom:13px;color:var(--program-muted);white-space:nowrap;font-size:.85rem;font-variant-numeric:tabular-nums}
.program-month{margin-top:40px}
.program-month>h2{margin:0 0 24px;font-size:1.45rem;letter-spacing:-.02em;font-weight:650}
.program-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.program-highlights{margin:4px 0 44px}
.program-section-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}
.program-section-heading h2{margin:0;font-size:1.45rem;font-weight:650;letter-spacing:-.02em}
.program-section-heading>a{display:inline-flex;align-items:center;gap:10px;min-height:44px;color:var(--program-red);font-size:.9rem;text-underline-offset:4px}
.program-highlight-grid{display:grid;grid-template-columns:repeat(var(--highlight-count),minmax(0,1fr));gap:24px}
.program-event{display:grid;grid-row:span 4;grid-template-rows:subgrid;min-width:0;margin:0;border-bottom:1px solid #dcd8d0}
.program-event-link{display:grid;grid-row:span 4;grid-template-rows:subgrid;gap:14px;padding:0 0 24px;color:inherit;text-decoration:none}
.program-media{--program-image-height:clamp(320px,30vw,420px);display:grid;place-items:center;width:100%;height:var(--program-image-height)}
.program-highlights .program-media{--program-image-height:clamp(360px,32vw,460px)}
.program-media{align-self:center}
.program-event.has-no-image .program-media{height:64px;aspect-ratio:auto}
.program-highlights .program-event h3{font-size:clamp(1.18rem,1.5vw,1.45rem)}
.program-poster{overflow:hidden;width:min(100%,calc(var(--program-image-height)*.75));height:auto;max-height:100%;aspect-ratio:3/4;border-radius:8px;background:#eae5dc}
.program-poster img{display:block;width:100%;height:100%;object-fit:contain}
.program-event-content{min-width:0;flex:1}
.program-date{display:flex;flex-wrap:wrap;gap:6px 14px;color:var(--program-red);font-size:1rem;font-variant-numeric:tabular-nums}
.program-date strong{font-weight:750}
.program-date span{color:var(--program-muted);font-size:.9rem}
.program-event h3{margin:0 0 7px;font-size:clamp(1.12rem,1.4vw,1.35rem);font-weight:700;line-height:1.3;letter-spacing:-.02em;overflow-wrap:anywhere;text-wrap:pretty}
.program-location{margin:0;color:var(--program-muted);font-size:.88rem;line-height:1.5}
.program-excerpt{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;max-width:72ch;margin:10px 0 0;color:var(--program-muted);font-size:.92rem;line-height:1.55;overflow-wrap:anywhere}
.program-action{display:inline-flex;align-items:center;justify-self:start;gap:10px;min-height:44px;color:var(--program-red);font-size:.9rem;font-weight:650;line-height:1.4}
.program-action svg{flex:none;transition:transform 160ms ease-out}
.program-event-link:hover h3{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.program-event-link:hover .program-action svg{transform:translateX(4px)}
.program-fallback-logo{display:block;width:64px;height:64px;object-fit:contain}
.program-announcement{display:flex;align-items:center;min-height:44px;margin:0;color:var(--program-muted);font-size:.85rem;line-height:1.5}
.program-empty{padding:64px 0;max-width:65ch}
.program-empty h2{margin:0 0 12px;font-size:1.6rem}
.program-empty p{color:var(--program-muted);line-height:1.6}
.program-page :is(a,input,select,button):focus-visible{outline:3px solid var(--program-red);outline-offset:5px}
.program-page summary:focus-visible{outline:3px solid var(--program-red);outline-offset:5px}
.program-page ::selection{background:#eed2c4;color:#292c2a}
.program-page :is(input,select){caret-color:var(--program-red)}
@media(min-width:1800px){.program-page .shop-main{max-width:1680px!important}}
@media(max-width:1199px){.program-highlight-grid{grid-template-columns:repeat(min(2,var(--highlight-count)),minmax(0,1fr))}}
@media(max-width:1050px){.program-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.program-intro{align-items:start;flex-direction:column;gap:16px}.program-intro p br{display:none}.program-toolbar{align-items:start;flex-direction:column;gap:12px}.program-count{padding:0}}
@media(max-width:600px){.program-page .shop-header{top:8px!important;width:calc(100% - 24px);margin-top:8px;padding:10px!important;flex-wrap:wrap;gap:14px}.program-page .shop-brand strong{font-size:.95rem}.program-page .shop-brand small{font-size:.75rem}.program-page .public-calendar-nav{width:100%;justify-content:stretch;box-shadow:none}.program-page .public-calendar-nav a{flex:1;min-height:44px;text-align:center;justify-content:center}.program-page .shop-main{width:calc(100% - 36px)!important;padding-top:28px!important}.program-intro{padding-bottom:24px}.program-intro h1{font-size:clamp(1.95rem,8.3vw,2.7rem)}.program-intro p{font-size:.92rem}.program-section-heading{align-items:start;flex-direction:column;gap:4px;margin-bottom:16px}.program-section-heading h2{font-size:1.25rem}.program-grid,.program-highlight-grid{grid-template-columns:minmax(0,1fr);gap:28px}.program-media,.program-highlights .program-media{height:auto;aspect-ratio:3/4}.program-poster{width:100%}.program-highlights .program-event h3,.program-event h3{font-size:1.25rem}.program-highlights{margin-bottom:28px}.program-filter{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto}.program-filter label:first-child{grid-column:1/-1}.program-filter input,.program-filter select{width:100%;min-width:0}.program-filter>a{grid-column:1/-1}.program-filter button{padding-inline:18px}.program-month{margin-top:28px}.program-month>h2{font-size:1.25rem;margin-bottom:18px}.program-toolbar{scroll-margin-top:160px}}
@media(prefers-reduced-motion:reduce){.program-action svg{transition:none}}
