.concert-feature{background:var(--cream)}.programme-card-poster .programme-card-media{background:#071e38}.programme-card-poster .programme-card-media img{object-fit:contain;padding:.6rem}.concert-feature-panel{display:grid;grid-template-columns:minmax(0,.84fr) minmax(0,1.16fr);align-items:center;gap:clamp(2rem,5vw,4.5rem)}.concert-poster-link{display:block;max-width:28rem;justify-self:center;border-radius:1.1rem;overflow:hidden;box-shadow:0 18px 42px #170d1b1f}.concert-poster{width:100%;height:auto;aspect-ratio:4/5;object-fit:contain}.concert-feature-copy{min-width:0}.concert-feature-copy h2{font-size:clamp(2.5rem,4.6vw,4.35rem);max-width:16ch}.concert-theme{font:500 clamp(1.7rem,2.6vw,2.4rem)/1.2 var(--display);color:var(--plum);margin-bottom:1.5rem}.concert-theme>span{display:block;margin-bottom:.45rem;font:800 .65rem/1.6 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.concert-feature-intro{max-width:37rem;color:var(--prose);font-size:.94rem}.concert-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.5rem;margin:1.75rem 0 2rem;padding:1.4rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.concert-facts>div:first-child{grid-column:1/-1}.concert-facts dt{font-size:.65rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.concert-facts dd{margin:.3rem 0 0;font-size:1rem;font-weight:700;line-height:1.55}.concert-facts dd small{display:block;font-size:.75rem;font-weight:500;color:var(--muted)}.concert-page-heading{padding-bottom:2.5rem}.concert-page-heading h1{max-width:19ch;font-size:clamp(2.8rem,5.6vw,5rem)}.concert-page-heading .concert-theme{margin-bottom:0}.concert-detail{padding-top:0}.concert-detail-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(2rem,5vw,5rem);align-items:center}.concert-detail-poster{margin:0;max-width:29rem}.concert-detail-poster img{width:100%;height:auto;border-radius:1rem;box-shadow:0 18px 42px #170d1b1a}.concert-detail-poster figcaption{margin-top:.6rem;font-size:.8rem}.concert-detail-poster figcaption a{display:inline-flex;align-items:center;min-height:2.75rem;color:var(--plum);font-weight:750}.concert-detail-welcome h2{font-size:clamp(2.1rem,3.4vw,3.2rem);max-width:17ch}.concert-detail-welcome>.lede{font-size:1.05rem;color:var(--prose)}.concert-scripture{color:var(--muted);font-size:.9rem}.concert-detail-welcome .concert-facts{margin-bottom:0}.concert-artists{background:var(--cream);overflow:hidden}.concert-artists-heading{align-items:end;flex-direction:row}.concert-artists-heading h2{margin-bottom:0}.artist-carousel-controls{display:flex;gap:.65rem;flex-shrink:0}.artist-carousel-control{width:3rem;height:3rem;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:var(--panel);color:var(--ink);font-size:1.3rem;line-height:1;transition:background .18s,color .18s}.artist-carousel-control:hover:not(:disabled){background:var(--action);color:#fff}.artist-carousel-control:disabled{opacity:.4;cursor:default}.artist-track{display:flex;gap:1.5rem;list-style:none;margin:0;padding:.35rem .15rem 1rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:.15rem;scrollbar-width:thin;scrollbar-color:var(--plum) var(--line);overscroll-behavior-inline:contain}.artist-card{min-width:0;flex:0 0 calc((100% - 3rem)/3);scroll-snap-align:start;overflow:hidden;background:var(--panel);border:1px solid var(--line);border-radius:1.1rem}.artist-portrait{aspect-ratio:4/5;width:calc(100% - 2.5rem);max-width:14rem;margin:1.25rem auto 0;border-radius:.7rem;background:var(--deep);overflow:hidden}.artist-portrait img{width:100%;height:100%;object-fit:cover;object-position:center top}.artist-portrait-placeholder{height:100%;display:grid;place-items:center;color:var(--gold);font:500 5rem var(--display)}.artist-card h3{padding:1.1rem 1.1rem 1.35rem;margin:0;text-align:center;font-size:clamp(1.12rem,1.8vw,1.45rem);overflow-wrap:anywhere}.artist-card h3:before{content:"";display:block;width:2rem;height:2px;margin:0 auto .85rem;background:var(--gold)}.artist-scroll-hint{font-size:.75rem;color:var(--muted);margin:1rem 0 0}.concert-practical .info-panel{align-self:start;padding:2rem;border:1px solid var(--line);border-radius:1rem;background:var(--cream)}.concert-practical .prose{min-width:0}.concert-practical .prose>:first-child{margin-top:0}.concert-announcement{position:fixed;z-index:60;right:1.25rem;bottom:1.25rem;width:min(28rem,calc(100% - 2.5rem));padding:1.45rem 1.25rem 1.15rem;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-top:3px solid var(--plum);border-radius:1.15rem;box-shadow:0 14px 55px #160d1b35}.concert-announcement-content{display:grid;grid-template-columns:4.8rem minmax(0,1fr);gap:1rem;align-items:start}.concert-announcement-poster{width:100%;height:auto;aspect-ratio:4/5;object-fit:contain;border-radius:.4rem;margin-top:1.65rem}.concert-announcement-copy .eyebrow{font-size:.58rem;margin-bottom:.45rem;padding-right:2rem}.concert-announcement-copy h2{font:750 1.05rem/1.4 var(--body);letter-spacing:-.02em;margin:0 1.5rem .5rem 0;text-wrap:balance}.concert-announcement-theme{font-size:.8rem;font-weight:750;color:var(--plum);margin:0 0 .65rem}.concert-announcement-intro{font-size:.8rem;line-height:1.6;color:var(--prose);margin:0 0 .65rem}.concert-announcement-date{font-size:.8rem;font-weight:750;margin:0 0 .25rem}.concert-announcement-times{font-size:.78rem;color:var(--muted);margin:0;line-height:1.6}.concert-announcement-copy .text-link{font-size:.75rem;gap:.6rem;min-height:2.75rem;margin-top:.2rem}.concert-announcement-close{position:absolute;right:.45rem;top:.4rem;display:grid;place-items:center;width:2.75rem;height:2.75rem;border:0;border-radius:50%;background:transparent;color:var(--ink);font-size:1.6rem;line-height:1}.concert-announcement-close:hover{background:var(--cream)}.concert-announcement-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.concert-without-poster{grid-template-columns:1fr}@media(max-width:960px){.concert-announcement{bottom:calc(6rem + env(safe-area-inset-bottom))}.artist-card{flex-basis:calc((100% - 1.5rem)/2)}}@media(max-width:760px){.concert-feature-panel,.concert-detail-grid{grid-template-columns:1fr;gap:2rem}.concert-feature-copy{grid-row:1}.concert-feature-copy h2{max-width:20ch}.concert-poster-link{width:100%;max-width:30rem}.concert-feature-copy .button-row{gap:.65rem 1.3rem}.concert-detail-poster{grid-row:2;max-width:30rem;justify-self:center;width:100%}.concert-detail-welcome{grid-row:1}.concert-detail{padding-bottom:3rem}.concert-page-heading{padding-bottom:2rem}.concert-page-heading h1{max-width:20ch}.concert-facts{margin-block:1.4rem}.concert-artists-heading{gap:1rem}.concert-artists-heading h2{font-size:2.6rem}.artist-track{gap:1rem}.artist-card{flex-basis:78%}.artist-card h3{font-size:1.2rem}.artist-carousel-control{width:2.75rem;height:2.75rem}}@media(max-width:420px){.concert-feature-copy h2{font-size:2.55rem}.concert-feature-copy .button-row{align-items:start;flex-direction:column;gap:.35rem}.concert-facts{gap:.85rem 1rem}.concert-facts dd{font-size:.93rem}.concert-announcement{right:.75rem;width:calc(100% - 1.5rem);padding:1.1rem 1rem .8rem}.concert-announcement-content{grid-template-columns:3.4rem minmax(0,1fr);gap:.8rem}.concert-announcement-copy h2{font-size:.96rem}.concert-announcement-poster{margin-top:1.5rem}.artist-card{flex-basis:84%}}@media(max-width:380px){.concert-announcement-content{grid-template-columns:1fr}.concert-announcement-poster{display:none}}@media(prefers-reduced-motion:reduce){.artist-track{scroll-behavior:auto}.artist-carousel-control{transition:none}}
