/* Program only. Supplied images keep their full composition. */
.program-page .program-container { width: 100%; max-width: var(--program-width); margin-inline: auto; }
.program-page .program-hero { padding: var(--program-section-space) var(--program-gutter) var(--program-space-xl); background: var(--ivory-dark); border-bottom: 1px solid var(--border); }
.program-kicker { font-family: var(--label); font-size: var(--program-label-size); letter-spacing: .18em; color: var(--red-dark); line-height: 1.6; }
.program-hero h1 { font-family: var(--serif); font-size: var(--program-title-size); font-weight: 600; letter-spacing: .08em; margin-top: var(--program-space-md); }
.program-intro { font-family: var(--serif); font-size: var(--program-film-size); margin-top: var(--program-space-lg); line-height: 1.9; }
.program-date { font-size: var(--program-small-size); color: var(--ink-light); margin-top: var(--program-space-md); line-height: var(--program-leading); }
.mobile-break { display: none; }
.program-page .program-lineup, .program-page .program-selected, .program-page .program-information { padding: var(--program-section-space) var(--program-gutter); }
.program-section-head { display: flex; align-items: end; justify-content: space-between; gap: var(--program-space-md); }
.program-section-head h2, .program-information h2 { font-family: var(--serif); font-size: var(--program-section-size); font-weight: 600; margin-top: var(--program-space-xs); }
.program-section-head > p { font-size: var(--program-small-size); color: var(--ink-light); flex-shrink: 0; }
.program-lead { font-size: var(--program-text-size); color: var(--ink-mid); line-height: var(--program-leading); margin-top: var(--program-space-md); max-width: 65ch; }
.program-page .program-block { padding: 0; margin-top: var(--program-space-xl); scroll-margin-top: var(--program-space-xl); }
.program-block-head { display: flex; justify-content: space-between; align-items: center; padding-bottom: var(--program-space-sm); border-bottom: 1px solid var(--ink); }
.program-block-head h3 { font-family: var(--serif); font-size: var(--program-section-size); font-weight: 500; }
.program-block-head p { font-size: var(--program-small-size); color: var(--ink-light); }
.film-list { list-style: none; margin: 0; padding: 0; }
.film-list > li { padding-block: var(--program-row-space); border-bottom: 1px solid var(--border); }
.film-feature { display: grid; grid-template-columns: 1.15fr 1fr; gap: var(--program-row-space); align-items: start; scroll-margin-top: var(--program-space-xl); }
.film-visual { margin: 0; min-width: 0; background: var(--program-photo-bg); }
.film-visual img { display: block; width: 100%; height: auto; }
.film-visual--poster { display: flex; flex-direction: column; align-items: center; }
.film-visual--poster img { width: auto; max-width: 100%; max-height: 450px; object-fit: contain; }
.film-eyebrow { display: flex; gap: var(--program-space-sm); align-items: baseline; font-size: var(--program-small-size); color: var(--ink-light); line-height: 1.7; }
.film-eyebrow span { color: var(--red-dark); font-family: var(--label); letter-spacing: .08em; }
.film-copy h4 { font-family: var(--serif); font-size: var(--program-film-size); line-height: 1.6; font-weight: 600; margin-top: var(--program-space-xs); overflow-wrap: anywhere; }
.film-byline { font-size: var(--program-small-size); color: var(--ink-mid); margin-top: var(--program-space-sm); line-height: var(--program-leading); }
.film-byline span { display: block; color: var(--ink-light); margin-top: var(--program-space-xs); }
.film-synopsis { font-size: var(--program-text-size); line-height: var(--program-leading); color: var(--ink-mid); margin-top: var(--program-space-md); }
.film-town { border-top: 1px solid var(--border); margin-top: var(--program-space-md); font-size: var(--program-small-size); }
.film-town summary, .program-departments summary { cursor: pointer; padding-block: var(--program-space-sm); color: var(--ink-mid); }
.film-town p { color: var(--ink-mid); line-height: var(--program-leading); padding-bottom: var(--program-space-sm); }
.film-trailer { display: inline-flex; gap: var(--program-space-lg); align-items: center; font-size: var(--program-small-size); border-bottom: 1px solid var(--ink); padding-bottom: var(--program-space-xs); margin-top: var(--program-space-xs); }
.film-trailer:hover, .program-text-link:hover { color: var(--red-dark); }
.program-image-credit { font-size: var(--program-label-size); color: var(--ink-light); margin-top: var(--program-space-md); }
.program-tickets { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--program-space-lg); background: var(--ivory-dark); padding: var(--program-space-lg); margin-top: var(--program-space-xl); }
.program-tickets h2 { font-family: var(--serif); font-size: var(--program-film-size); margin-top: var(--program-space-xs); }
.program-tickets p:not(.program-kicker) { font-size: var(--program-small-size); color: var(--ink-mid); margin-top: var(--program-space-sm); }
.program-tickets .btn { white-space: nowrap; }
.program-page .program-selected { background: var(--ivory-dark); scroll-margin-top: var(--program-space-xl); }
.film-list--selected { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); column-gap: var(--program-row-space); margin-top: var(--program-space-md); }
.film-list--selected .film-feature { display: flex; flex-direction: column; gap: var(--program-space-md); }
.film-list--selected .film-visual { width: 100%; }
.program-information > .program-container > p:not(.program-kicker) { font-size: var(--program-text-size); color: var(--ink-mid); line-height: var(--program-leading); max-width: 65ch; margin-top: var(--program-space-md); }
.program-text-link { display: inline-flex; align-items: center; gap: var(--program-space-xl); border-bottom: 1px solid var(--ink); font-size: var(--program-text-size); padding-block: var(--program-space-sm); margin-top: var(--program-space-sm); }
.program-departments { margin-top: var(--program-space-xl); border-block: 1px solid var(--border); font-size: var(--program-text-size); }
.dept-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--program-space-lg); padding-bottom: var(--program-space-md); }
.dept-grid h3 { font-family: var(--serif); font-size: var(--program-text-size); }
.dept-grid p { margin-top: var(--program-space-xs); font-size: var(--program-small-size); color: var(--ink-light); line-height: var(--program-leading); }
.program-archive a { text-decoration: underline; text-underline-offset: .3em; }
@media (max-width: 760px) {
 .film-feature { grid-template-columns: 1fr; gap: var(--program-space-md); }
 .film-visual--poster img { max-height: 420px; }
 .program-section-head { align-items: start; }
 .program-section-head > p { margin-top: var(--program-space-xs); }
 .film-list--selected { grid-template-columns: 1fr; }
 .mobile-break { display: block; }
 .program-tickets { padding: var(--program-space-md); }
 .program-tickets .btn { width: 100%; }
 .dept-grid { grid-template-columns: 1fr; gap: var(--program-space-md); }
}
/* Hero: the full lineup at a glance (all 7 films, screening order). */
.program-page .program-hero { padding: var(--program-space-lg) var(--program-gutter); }
.program-hero > .program-container { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: var(--program-space-md) var(--program-space-lg); }
.program-hero-copy { grid-column: 1 / -1; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: var(--program-space-sm) var(--program-space-lg); }
.program-hero h1 { margin-top: var(--program-space-xs); line-height: 1.3; }
.program-hero-meta { text-align: right; }
.program-hero .program-date { margin-top: 0; }
.program-hero .program-intro { font-size: var(--program-text-size); line-height: var(--program-leading); margin-top: 0; color: var(--ink-mid); }
.program-hero-reserve { display: inline-flex; align-items: center; gap: var(--program-space-sm); margin-top: var(--program-space-sm); padding: var(--program-space-xs) var(--program-space-md); background: var(--red-dark); color: var(--program-white); font-size: var(--program-small-size); letter-spacing: .08em; }
.program-hero-reserve:hover { opacity: .85; }
.program-index-head { display: flex; justify-content: space-between; align-items: baseline; padding-bottom: var(--program-space-xs); border-bottom: 1px solid var(--ink); }
.program-index-head h2 { font-family: var(--serif); font-size: var(--program-text-size); font-weight: 600; letter-spacing: .12em; line-height: 1.6; }
.program-index-head p { font-size: var(--program-label-size); color: var(--ink-light); line-height: 1.6; }
.program-index-list { list-style: none; margin: 0; padding: 0; }
.program-index-list > li { border-bottom: 1px solid var(--border); }
.program-index-item { display: grid; grid-template-columns: var(--program-index-thumb) minmax(0,1fr); gap: var(--program-space-sm); align-items: center; padding-block: var(--program-index-row-pad); }
.program-index-thumb { display: block; aspect-ratio: 16 / 9; background: var(--program-photo-bg); }
.program-index-thumb img { display: block; width: 100%; height: 100%; object-fit: contain; }
.program-index-text { display: flex; flex-direction: column; min-width: 0; font-size: var(--program-label-size); color: var(--ink-light); line-height: 1.6; }
.program-index-text strong { display: flex; gap: var(--program-space-xs); align-items: baseline; font-family: var(--serif); font-size: var(--program-index-title-size); font-weight: 600; color: var(--ink); line-height: 1.5; overflow-wrap: anywhere; }
.program-index-no { font-family: var(--label); font-size: var(--program-label-size); letter-spacing: .08em; color: var(--red-dark); flex-shrink: 0; }
.program-index-item:hover strong { color: var(--red-dark); }
.program-index-selected { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: var(--program-space-xs) var(--program-space-md); align-items: baseline; font-size: var(--program-small-size); color: var(--ink-light); line-height: var(--program-leading); }
.program-index-selected a { display: inline-flex; gap: var(--program-space-sm); border-bottom: 1px solid var(--ink); color: var(--ink); }
.program-index-selected a:hover { color: var(--red-dark); }
@media (max-width: 1000px) { .program-hero-meta { text-align: left; } }
@media (max-width: 760px) {
 .program-page .program-hero { padding-block: var(--program-space-xs) var(--program-space-md); }
 .program-hero > .program-container { grid-template-columns: 1fr; gap: var(--program-space-sm); }
 .program-hero .program-kicker, .program-hero .program-intro { display: none; }
 .program-hero h1 { font-size: var(--program-film-size); letter-spacing: .04em; margin-top: 0; white-space: nowrap; }
 .program-hero-meta { text-align: left; }
 .program-hero .program-date { font-size: var(--program-label-size); line-height: 1.6; }
 .program-hero-copy { display: grid; grid-template-columns: minmax(0,1fr) auto; grid-template-areas: "title reserve" "date date"; align-items: center; column-gap: var(--program-space-sm); }
 .program-hero-copy > div:first-child { grid-area: title; }
 .program-hero-meta { display: contents; }
 .program-hero .program-date { grid-area: date; }
 .program-hero-reserve { grid-area: reserve; margin-top: 0; gap: var(--program-space-xs); padding-inline: var(--program-space-sm); white-space: nowrap; }
 .program-hero-reserve-more { display: none; }
 .program-index-text > span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
 .program-index-item { grid-template-columns: var(--program-index-thumb-sm) minmax(0,1fr); gap: var(--program-space-xs) var(--program-space-sm); padding-block: var(--program-index-row-pad-sm); }
 .program-index-text strong { font-size: var(--program-text-size); }
 .program-index-text > span:last-child { display: none; }
}
