/* Page banners share the existing title-band dimensions; the homepage stays distinct. */
.page-banner{position:relative;isolation:isolate;overflow:hidden;border-bottom:1px solid #ffffff1a;background:#18181b}
.page-banner-image{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;object-position:center}
.page-banner-with-image::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(9,9,11,.84),rgba(9,9,11,.4) 65%,rgba(9,9,11,.28)),linear-gradient(0deg,rgba(9,9,11,.32),transparent)}
.banner-position-top .page-banner-image{object-position:center top}.banner-position-bottom .page-banner-image{object-position:center bottom}
.page-banner-content{max-width:1280px;margin:auto;padding:3.5rem 1.25rem}
.page-banner h1{font-family:var(--site-font-serif);font-size:3rem;line-height:1.05;letter-spacing:-.025em;overflow-wrap:anywhere}
@media(min-width:640px){.page-banner-content{padding:5rem 1.5rem}.page-banner h1{font-size:3.75rem}}
@media(min-width:1024px){.page-banner-content{padding-inline:2rem}}
/* Keep date, group, title, venue and city aligned, including long names. */
.home-upcoming-row{grid-template-columns:48px minmax(0,1fr) 12px;gap:.8rem;padding:1rem 0}
.home-upcoming-date{padding-right:.6rem}.home-upcoming-day{font-family:var(--site-font-serif)}
.home-upcoming-kicker{flex-wrap:wrap;gap:.3rem .5rem;min-width:0}
.home-upcoming-group{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;line-height:1.35}
.home-upcoming-title-row{flex-wrap:wrap;gap:.3rem .5rem}
.home-upcoming-title{font-family:var(--site-font-serif);font-size:1.22rem;font-weight:700;line-height:1.12;overflow-wrap:anywhere}
.home-upcoming-venue,.home-upcoming-city{overflow-wrap:anywhere;line-height:1.4}
.home-upcoming-link:focus-visible{outline:2px solid #d6ba82;outline-offset:3px}
@media(min-width:768px) and (max-width:1023px){.hero-calendar-layout{grid-template-columns:minmax(0,1fr) 300px;gap:1.5rem}.calendar-desktop{padding-left:1rem}}
.calendar-full-date{flex-direction:column;align-items:flex-start;gap:.35rem}
.calendar-full-kicker{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .6rem;margin-bottom:.4rem;color:#a8a29e;font-size:.75rem;line-height:1.4}
.calendar-full-title{font-weight:600;overflow-wrap:anywhere}
.calendar-full-meta{overflow-wrap:anywhere}.calendar-full-time{font-size:.8rem;color:#a8a29e;margin-top:.35rem}
.calendar-full-item{align-items:start}.calendar-full-action{padding-top:.25rem}
@media(max-width:767px){
 .calendar-full-item,.calendar-full-item.has-image{grid-template-columns:44px minmax(0,1fr);gap:.75rem 1rem;position:relative}
 .calendar-full-item.has-image .calendar-full-main{grid-column:2;grid-row:1}
 .calendar-full-item .calendar-full-date{grid-column:1;grid-row:1}
 .calendar-full-item .calendar-full-thumb{grid-column:1;grid-row:2;width:44px;align-self:start}
 .calendar-full-item .calendar-full-action,.calendar-full-item.has-image .calendar-full-action{grid-column:2;grid-row:2;margin:0;align-self:start}
 .home-upcoming-row{grid-template-columns:48px minmax(0,1fr) 12px}
}
.performance-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.5rem 1rem;padding:1rem 0;border-bottom:1px solid #ffffff1a;align-items:start}
.performance-row>span:nth-child(3){grid-column:1;overflow-wrap:anywhere}.performance-row>a,.performance-row>span:nth-child(4){grid-column:2;grid-row:2;justify-self:end}
@media(min-width:1200px){.performance-row{grid-template-columns:180px 55px minmax(0,1fr) auto;align-items:center}.performance-row>span:nth-child(3),.performance-row>a,.performance-row>span:nth-child(4){grid-column:auto;grid-row:auto}}
[data-copy="global_email"],[data-copy="global_instagram_handle"],.rich-text{overflow-wrap:anywhere}
main h1,main h2,main h3{overflow-wrap:anywhere}
.nav-panel[inert]{visibility:hidden}.nav-open .nav-panel{visibility:visible}
@media(max-width:767px){.production-hero{min-height:380px;height:auto;min-height:min(500px,75svh)}.production-hero h1{font-size:clamp(2.5rem,10vw,3rem)}}
@media(prefers-reduced-motion:reduce){.page-banner-image,.home-upcoming-link{transition:none}}

.hero-calendar-layout.hero-empty{grid-template-columns:minmax(0,1fr);max-width:800px;margin:auto}.hero-empty .calendar-desktop{border-left:0;padding-left:0}.hero-empty [data-hero-stage]{display:none}
@media(max-width:767px){[data-hero]:has(.hero-empty){display:none}}
/* Five selected dates maximum; scroll inside the hero-height sidebar. */
.hero-calendar-layout{align-items:start}
.calendar-desktop{height:var(--home-hero-height,450px);max-height:var(--home-hero-height,450px);min-height:0;overflow:hidden}
.calendar-desktop>div:first-child{flex:none;align-items:flex-start;flex-wrap:wrap;gap:.5rem 1rem}
.home-upcoming-scroll{min-height:0;overflow-y:auto;overscroll-behavior-y:contain;scrollbar-width:thin;scrollbar-color:#57534e transparent;flex:1;padding-top:.5rem;padding-right:.3rem}
.home-upcoming-scroll.can-scroll:not(.at-end){mask-image:linear-gradient(to bottom,#000 0%,#000 calc(100% - 44px),transparent 100%);-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 calc(100% - 44px),transparent 100%)}
.home-upcoming-scroll.can-scroll ol{padding-bottom:1.25rem}.home-upcoming-scroll:focus-visible{outline:1px solid #d6ba82;outline-offset:-1px}
@media(max-width:767px){[data-upcoming-mobile]{max-height:min(360px,var(--home-hero-height,450px));scrollbar-gutter:stable}}
