.program-hero{padding:65px 8% 60px;display:grid;grid-template-columns:1.5fr 1fr;gap:40px;align-items:end;border-bottom:1px solid var(--line)}.breadcrumb{font-size:14px;color:var(--muted);margin-bottom:42px;display:block}.program-hero h1{font-size:clamp(58px,6.9vw,102px);margin:0 0 26px}.program-hero .lede{max-width:570px;color:var(--muted);font-size:18px;margin:0}.program-year{font:clamp(100px,16vw,220px)/1 'Libre Caslon Display',Georgia,serif;letter-spacing:-.06em;color:var(--accent);text-align:right}.program-year small{display:block;font:12px/1.6 'DM Sans',sans-serif;letter-spacing:.12em;margin-top:24px;color:var(--muted)}.program-body{padding:50px 8% 80px}.program-toolbar{display:flex;flex-wrap:wrap;gap:18px;align-items:end;padding-bottom:32px;border-bottom:1px solid var(--line)}.program-toolbar label{display:flex;flex-direction:column;gap:8px;font-size:14px;min-width:135px}.program-toolbar select{font:inherit;color:var(--ink);border:1px solid #a9aca1;border-radius:0;background:transparent;padding:10px 35px 10px 12px;min-height:46px}.program-toolbar select:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.program-count{margin-left:auto;font-size:14px;color:var(--muted);max-width:190px}.calendar-heading{font-size:38px;margin:45px 0 20px}.event{display:grid;grid-template-columns:115px 1fr 180px;gap:28px;border-top:1px solid var(--line);padding:30px 0}.event-date time{font-family:'Libre Caslon Display',Georgia,serif;font-size:34px;line-height:1.2}.event-date small{display:block;color:var(--muted);font-size:13px;margin-top:6px}.event h3{font:38px/1.15 'Libre Caslon Display',Georgia,serif;margin:8px 0 12px;letter-spacing:-.02em}.event .place{font-size:12px;letter-spacing:.1em;color:var(--muted);margin:0}.event .venue{margin:0 0 10px;font-size:16px}.event .repertoire{margin:0;max-width:620px;font-size:15px;color:var(--muted)}.event-side{text-align:right}.event-status{display:inline-block;border:1px solid var(--line);padding:3px 8px;font-size:12px;letter-spacing:.05em}.event[data-state="upcoming"] .event-status{border-color:var(--accent);color:var(--accent)}.event-side .text-link{margin-top:24px;font-size:14px}.event details{margin-top:18px;font-size:14px}.event summary{cursor:pointer;width:fit-content;text-decoration:underline;text-underline-offset:5px}.event details p{max-width:660px;color:var(--muted)}.event details .source{color:var(--ink)}.program-note{border-top:1px solid var(--line);margin-top:35px;padding-top:25px;font-size:14px;color:var(--muted);max-width:800px}.program-empty{padding:45px 0;font-size:18px}.program-teaser{background-color:#dcded3;padding:35px 8%;display:grid;grid-template-columns:1fr 1.2fr auto;gap:35px;align-items:center}.program-teaser .eyebrow{margin:0 0 12px}.program-teaser h2{font-size:38px}.program-teaser p{margin:0;color:var(--muted);font-size:15px}.program-teaser .text-link{margin:0;white-space:nowrap}.program-active{border-bottom:1px solid var(--accent);color:var(--accent)}[hidden]{display:none!important}@media(max-width:900px){.program-hero{padding:45px 6%;gap:20px}.program-body{padding:40px 6%}.event{grid-template-columns:90px 1fr 135px;gap:20px}.program-teaser{padding:32px 6%;grid-template-columns:1fr 1fr}.program-teaser .text-link{justify-self:start}.program-toolbar{gap:14px}.program-count{margin-left:0}.program-year{font-size:125px}}@media(max-width:600px){.program-hero{grid-template-columns:1fr}.program-hero h1{font-size:60px}.breadcrumb{margin-bottom:30px}.program-year{font-size:100px;text-align:left;display:flex;align-items:end;gap:28px}.program-year small{max-width:130px;margin:0 0 10px}.program-hero .lede{font-size:16px}.program-toolbar label{width:calc(50% - 7px);min-width:0}.program-toolbar select{width:100%;padding-right:8px}.program-count{max-width:none;margin:0}.event{grid-template-columns:70px 1fr;gap:15px}.event h3{font-size:31px}.event-date time{font-size:28px}.event-side{grid-column:2;text-align:left;display:flex;flex-wrap:wrap;gap:14px;align-items:center}.event-side .text-link{margin:0}.event-date small{font-size:12px}.calendar-heading{font-size:33px}.program-teaser{grid-template-columns:1fr;gap:20px}.program-teaser h2{font-size:36px}}

/* A framed invitation separates the programme from the surrounding photography. */
.program-invitation{padding:42px 6%;background:transparent}.program-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:32px;border:1.5px solid #8c9183;border-radius:8px;padding:30px 34px;background:rgba(233,233,222,.5);box-shadow:0 3px 0 rgba(35,41,35,.035);transition:background .2s,border-color .2s,box-shadow .2s}.program-card:hover,.program-card:focus-visible{background:rgba(220,222,211,.75);border-color:var(--ink);box-shadow:0 5px 16px rgba(35,41,35,.07)}.program-card-year{display:flex;flex-direction:column;border-right:1px solid #b8bbae;padding-right:30px}.program-card-year>span{font-size:10px;letter-spacing:.2em}.program-card-year strong{font:62px/1.1 'Libre Caslon Display',Georgia,serif;letter-spacing:-.04em;color:var(--accent)}.program-card-copy{display:flex;flex-direction:column;gap:9px}.program-card-copy .eyebrow{font-size:9px;letter-spacing:.13em;margin:0}.program-card-title{font:38px/1.12 'Libre Caslon Display',Georgia,serif;letter-spacing:-.025em}.program-card-description{font-size:13px;color:var(--muted)}.program-card-action{display:flex;align-items:center;gap:24px;background:var(--ink);color:var(--paper);border-radius:30px;padding:17px 24px;font-size:13px;white-space:nowrap}.program-card-action>span{font-size:20px}@media(max-width:1000px){.program-card{gap:22px;padding:26px}.program-card-title{font-size:32px}.program-card-year{padding-right:22px}.program-card-action{padding:15px 18px;gap:16px}}@media(max-width:700px){.program-invitation{padding:30px 6%}.program-card{grid-template-columns:75px 1fr;gap:20px;padding:24px 20px}.program-card-year{padding-right:16px}.program-card-year strong{font-size:42px}.program-card-title{font-size:31px}.program-card-copy .eyebrow{font-size:8px}.program-card-description{font-size:12px}.program-card-action{grid-column:1/-1;justify-content:space-between;padding:14px 20px}}

/* Keep the multi-year programme label within its original column. */
#display-year[data-range]{font-size:clamp(40px,6vw,90px);white-space:nowrap;letter-spacing:-.04em}
@media(max-width:600px){.program-year{flex-wrap:wrap;gap:12px 24px}.program-year:has([data-range]) small{margin-bottom:0}}
