.programme { --programme-blue: var(--cp-blue, #005db8); }
.programme-head { display:grid; grid-template-columns:minmax(130px,260px) minmax(0,1fr); gap:clamp(1rem,4vw,3.5rem); align-items:start; margin-block:2rem; }
.programme-poster { display:block; width:100%; height:auto; max-height:360px; object-fit:contain; border-radius:.55rem; }
.programme-lead h1 { font-size:clamp(2rem,4.3vw,4rem); line-height:1.04; overflow-wrap:anywhere; margin:.3em 0; }
.programme-next { border-inline-start:5px solid var(--cp-yellow, #ffe033); padding:.5rem 1rem; margin:1.25rem 0; }
.programme-next strong { font-size:clamp(1.05rem,2vw,1.6rem); }
.programme-next p { margin:.35rem 0; }
.programme-schedule,.programme-more { max-width:56rem; margin:2.5rem auto; }
.programme-schedule h2,.programme-more h2 { font-size:clamp(1.7rem,3vw,2.6rem); margin:.3rem 0; }
.programme-city { margin:.8rem 0; border:1px solid #b7cbd9; border-radius:.65rem; }
.programme-city > summary { padding:1rem; cursor:pointer; color:var(--programme-blue); }
.programme-city > summary strong { font-size:1.25rem; }
.programme-city > summary span { margin-inline-start:.65rem; font-size:.85rem; }
.programme-venue { padding:.25rem 1rem 1rem; }
.programme-venue + .programme-venue { border-top:1px solid #b7cbd9; }
.programme-venue h3 { font-size:1.12rem; margin:.75rem 0; }
.programme-day { border-top:1px solid #dae3ea; padding:.7rem 0; }
.programme-day h4 { margin:.2rem 0 .6rem; }
.programme-times { display:flex; flex-wrap:wrap; align-items:flex-start; gap:.45rem; }
.programme-time { min-width:0; max-width:100%; scroll-margin-block-start:10rem; }
.programme-time > summary { min-height:44px; padding:.55rem .8rem; cursor:pointer; border:1px solid var(--programme-blue); color:var(--programme-blue); border-radius:.45rem; overflow-wrap:anywhere; }
.programme-time[open] { width:100%; }
.programme-time[open] > summary { background:var(--programme-blue); color:white; }
.programme-info { padding:.75rem; background:#f3f7fb; overflow-wrap:anywhere; }
.programme-info > a:last-child { display:block; margin-block-start:.6rem; }
.programme .ticket-row { flex-wrap:wrap; }
.programme summary:focus-visible { outline:3px solid var(--programme-blue); outline-offset:3px; }
@media(max-width:600px) {
  .programme-head { grid-template-columns:5rem minmax(0,1fr); gap:.75rem; }
  .programme-lead h1 { font-size:clamp(1.55rem,6vw,2.2rem); }
  .programme-next { padding-inline:.65rem; }
  .programme-city > summary,.programme-venue { padding-inline:.7rem; }
}
