.show-hero{display:grid;grid-template-columns:1fr;padding-top:62px}.show-portrait{position:relative;height:310px;overflow:hidden;background:var(--charcoal)}.show-portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 35%}.show-portrait:after{content:'';position:absolute;inset:70% 0 0;background:linear-gradient(transparent,var(--ink))}.portrait-caption{position:absolute;bottom:24px;left:6vw;z-index:1;font-size:9px;letter-spacing:.2em}.show-copy{padding:25px 7vw 48px}.show-eyebrow{font-size:11px;letter-spacing:.2em;text-transform:uppercase;margin:0 0 22px;color:var(--silver)}.show-copy h1{font:400 clamp(64px,16vw,100px)/.9 var(--serif);letter-spacing:-.045em;margin:0 0 28px}.show-copy h1 em{font-weight:400;color:var(--silver)}.show-date{border-top:1px solid #f4f0e833;padding-top:22px}.show-date time{font-size:15px;letter-spacing:.035em}.show-date p{font:400 23px/1.25 var(--serif);margin:14px 0 24px}.show-date p span{display:block;font:400 14px/1.6 var(--sans);color:var(--silver);margin-top:4px}.ticket-button{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:58px;padding:16px 22px;background:var(--velvet);border:1px solid #b53b46;color:var(--ivory);font:600 13px/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;transition:background .2s}.external-link-icon{display:inline-block;width:1em;height:1em;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.12em;flex:0 0 auto}.ticket-button .external-link-icon{width:18px;height:18px}.ticket-button:hover{background:#a92230}.ticket-note{font-size:12px;color:var(--silver);margin:12px 0 0}.ticket-note .external-link-icon{margin-left:4px}.show-details{background:var(--ivory);color:var(--ink);padding:55px 7vw;display:grid;gap:30px}.show-details .show-eyebrow{color:var(--velvet)}.details-heading h2{font:400 clamp(40px,6vw,62px)/1 var(--serif);letter-spacing:-.035em;margin:0}.details-heading h2 em{font-weight:400}.details-list{margin:0}.details-list>div{display:grid;grid-template-columns:90px 1fr;gap:18px;padding:19px 0;border-top:1px solid #0a090833}.details-list dt{font-size:10px;letter-spacing:.1em;text-transform:uppercase;padding-top:5px}.details-list dd{margin:0;font:400 24px/1.25 var(--serif)}.details-list dd span{display:block;margin-top:6px;font:400 14px/1.5 var(--sans);color:#514b45}.chapter-link{padding:40px 7vw;display:flex;gap:22px;align-items:center}.chapter-link img{width:80px;height:80px;object-fit:cover}.chapter-link .show-eyebrow{font-size:9px;margin-bottom:9px}.chapter-link a{font:400 clamp(22px,3vw,32px)/1.2 var(--serif);text-decoration:none}.chapter-link a .external-link-icon{margin-left:8px}.chapter-link a:hover{text-decoration:underline;text-underline-offset:5px}.london-page footer{padding-block:30px}.london-page .legal-links{white-space:normal}.london-page .legal-links a{line-height:1.6}.london-page .nav-cta{min-height:44px;display:flex;align-items:center}.london-page :focus-visible{outline-offset:5px}.show-details :focus-visible{outline-color:var(--ink)}
@media(min-width:700px){.show-hero{padding-top:74px;grid-template-columns:50% 50%;min-height:760px}.show-portrait{height:auto;min-height:686px}.show-portrait img{position:absolute;inset:0;object-position:50% 40%}.show-portrait:after{inset:0;background:linear-gradient(90deg,transparent 82%,var(--ink))}.portrait-caption{bottom:28px;left:3.5vw}.show-copy{padding:65px 7vw 60px 5vw;display:flex;flex-direction:column;justify-content:center}.show-copy h1{font-size:clamp(76px,7.8vw,122px);margin-bottom:36px}.show-date time{font-size:16px}.show-date p{font-size:28px;margin-bottom:28px}.show-eyebrow{margin-bottom:28px}.show-details{grid-template-columns:1fr 1fr;padding:76px 8vw;gap:8vw}.chapter-link{padding:45px 8vw}.chapter-link img{width:104px;height:104px}.london-page .nav-meta{display:block}.london-page .nav{grid-template-columns:1fr auto 1fr}}
@media(prefers-reduced-motion:reduce){.ticket-button{transition:none}}
/* Event location gets a clear first-view read; supporting artwork stays compact. */
.show-copy>.show-eyebrow{font-size:14px;letter-spacing:.17em;color:var(--ivory)}
.chapter-link .show-eyebrow{font-size:10px}
@media(max-width:699px){.chapter-link{gap:18px}.chapter-link a{font-size:21px}}
@media(max-width:340px){.chapter-link a{font-size:18px;white-space:nowrap}.chapter-link a .external-link-icon{width:14px;height:14px;margin-left:5px}}

/* London first-visit layout: keep the ticket decision clear of native consent.
   The CMP still owns its markup, choices, dismissal and preference behavior. */
.details-list>div{min-width:0;grid-template-columns:100px minmax(0,1fr)}
.details-list dt{white-space:normal;overflow-wrap:normal;line-height:1.5}
@media(min-width:700px){
  html .london-page .osano-cm-window .osano-cm-dialog--type_bar{
    left:24px!important;bottom:24px!important;width:calc(50vw - 48px)!important;
    max-width:540px!important;padding:18px!important;gap:14px!important;
    border:1px solid rgba(189,167,125,.5)!important;
  }
  html .london-page .osano-cm-window .osano-cm-dialog--type_bar .osano-cm-content{
    flex-basis:100%!important;min-width:0!important;padding-right:46px!important;
  }
  html .london-page .osano-cm-window .osano-cm-dialog--type_bar .osano-cm-buttons{width:100%!important}
}
@media(max-width:699px){
  .show-portrait{height:170px}
  .show-portrait img{object-position:50% 37%}
  .portrait-caption{display:none}
  .show-copy{padding:16px 6vw 24px}
  .show-copy>.show-eyebrow{font-size:11px;margin-bottom:9px}
  .show-copy h1{font-size:clamp(38px,10.7vw,66px);line-height:1.05;margin-bottom:16px;letter-spacing:-.04em;white-space:nowrap}
  .show-copy h1 br{display:none}
  .show-date{padding-top:12px}
  .show-date time{font-size:14px}
  .show-date p{font-size:22px;margin:6px 0 14px}
  .show-date p span{display:inline;font-size:12px;margin-left:8px}
  .ticket-button{min-height:48px;padding:11px 18px}
  .ticket-note{font-size:11px;margin-top:7px}
  .show-details{padding:36px 6vw;gap:24px}
  .details-heading .show-eyebrow{margin-bottom:12px}
  .details-heading h2{font-size:38px}
  .details-list{display:grid;grid-template-columns:1fr 1fr;column-gap:24px}
  .details-list>div{display:block;padding:14px 0}
  .details-list>div:last-child{grid-column:1/-1}
  .details-list dt{font-size:10px;letter-spacing:.08em;margin-bottom:8px;padding:0}
  .details-list dd{font-size:26px}
  .details-list dd span{font-size:13px}
  .chapter-link{padding:30px 6vw}
  html .london-page .osano-cm-window .osano-cm-dialog--type_bar{padding:12px 16px!important;gap:10px!important;max-height:55dvh!important}
  html .london-page .osano-cm-window .osano-cm-dialog--type_bar .osano-cm-content{min-width:0!important;flex-basis:100%!important;padding:0 44px 0 0!important;line-height:1.4!important}
  html .london-page .osano-cm-window .osano-cm-dialog .osano-cm-message{font-size:12px!important;line-height:1.4!important}
  html .london-page .osano-cm-window .osano-cm-dialog .osano-cm-content:before{letter-spacing:.13em;line-height:1.4;white-space:nowrap}
  html .london-page .osano-cm-window .osano-cm-dialog--type_bar .osano-cm-buttons{margin:0!important;grid-template-columns:1fr!important}
}
@media(max-width:360px),(max-width:699px) and (max-height:760px){
  .show-portrait{height:105px}
  .show-copy{padding-top:12px;padding-bottom:18px}
  .show-copy h1{margin-bottom:12px}
  .show-date p span{display:none} /* London is already explicit in the hero eyebrow. */
}
@media(max-width:699px){
  .show-portrait img{object-position:50% 53%}
  .show-portrait:after{inset:82% 0 0}
  .chapter-link a{font-size:20px}
  html .london-page .osano-cm-window .osano-cm-dialog--type_bar{flex-direction:column!important;align-items:stretch!important;flex-wrap:nowrap!important}
  html .london-page .osano-cm-window .osano-cm-dialog--type_bar .osano-cm-content{flex:0 0 auto!important;width:100%!important;max-width:100%!important}
  html .london-page .osano-cm-window .osano-cm-dialog--type_bar .osano-cm-buttons{flex:0 0 auto!important;width:100%!important;align-self:stretch!important}
  .chapter-link img{width:68px;height:68px;flex-shrink:0}
}
@media(max-width:699px) and (max-height:650px){
  .show-portrait{display:none}
  .show-copy{padding-top:22px}
}
