.breadcrumbs { min-height: 52px; padding: 0 var(--pad); display: flex; align-items: center; gap: 12px; border-bottom: 1px solid var(--gray-2); color: #777; font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }
.breadcrumbs a:hover { color: var(--black); text-decoration: underline; }
.breadcrumbs strong { color: var(--black); }

.artist-hero { height: clamp(620px, 45vw, 760px); display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(420px, .95fr); border-bottom: 1px solid var(--gray-2); }
.artist-visual { position: relative; isolation: isolate; height: 100%; min-height: 0; overflow: hidden; background: #111; }
.artist-visual img { height: 100%; object-fit: cover; object-position: center 18%; }
.artist-visual::before { content: ""; position: absolute; z-index: 0; inset: -14%; background: var(--event-artwork) center / cover no-repeat; filter: blur(38px) brightness(.3) saturate(.75); transform: scale(1.08); opacity: .9; pointer-events: none; }
.artist-visual::after { content: ""; position: absolute; z-index: 1; inset: 0; background: radial-gradient(circle at 50% 43%, rgba(0,0,0,.02), rgba(0,0,0,.48) 100%); box-shadow: inset 0 0 0 1px rgba(255,255,255,.12); pointer-events: none; }

@media (min-width: 721px) {
  .artist-visual { padding: clamp(18px, 1.7vw, 30px); display: grid; place-items: center; }
  .artist-visual img { position: absolute; z-index: 2; inset: 0; width: 100%; height: 100%; padding: clamp(18px, 1.7vw, 30px); object-fit: contain; object-position: center; filter: drop-shadow(0 22px 32px rgba(0,0,0,.48)); }
}
.artist-intro { height: 100%; min-height: 0; overflow: hidden; padding: clamp(28px, 2.8vw, 40px) var(--pad); display: flex; flex-direction: column; justify-content: center; background: white; }
.detail-eyebrow { margin: 0 0 21px; color: #777; font-size: 10px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.artist-intro h1 { margin: 0; font-size: clamp(46px, 5.1vw, 82px); line-height: .88; letter-spacing: -.065em; text-transform: uppercase; }
.artist-intro h1.is-long-title { font-size: clamp(38px, 3.55vw, 58px); line-height: .9; letter-spacing: -.05em; }
.artist-intro h1.is-very-long-title { font-size: clamp(32px, 3vw, 48px); }
.artist-lead { max-width: 600px; margin: 18px 0; display: -webkit-box; overflow: hidden; color: #444; font-size: clamp(15px, 1.2vw, 18px); line-height: 1.4; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.lead-toggle { display: none; width: fit-content; margin: -4px 0 16px; padding: 0 0 5px; border: 0; border-bottom: 1px solid var(--black); background: transparent; cursor: pointer; color: var(--black); font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.tour-facts { margin: 0 0 18px; border-top: 1px solid var(--black); }
.tour-facts div { padding: 9px 0; display: grid; grid-template-columns: 110px 1fr; border-bottom: 1px solid var(--gray-2); }
.tour-facts dt { color: #777; font-size: 9px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.tour-facts dd { margin: 0; font-size: 12px; font-weight: 700; }
.primary-ticket { width: 100%; padding: 19px 21px; display: flex; align-items: center; justify-content: space-between; background: var(--black); color: white; font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.primary-ticket:hover { background: #333; }
.primary-ticket span { font-size: 20px; }

.detail-tabs { position: sticky; top: 0; z-index: 8; min-height: 64px; padding: 0 var(--pad); display: flex; align-items: center; gap: clamp(25px, 5vw, 70px); border-bottom: 1px solid var(--gray-2); background: rgba(255,255,255,.96); backdrop-filter: blur(12px); }
.detail-tabs a { height: 64px; display: flex; align-items: center; gap: 9px; border-bottom: 3px solid transparent; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; }
.detail-tabs a:first-child, .detail-tabs a:hover { border-color: var(--black); }
.detail-tabs span { display: grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: var(--black); color: white; font-size: 9px; }

.dates-section { padding: clamp(75px, 9vw, 135px) var(--pad); background: var(--gray-1); }
.detail-heading { display: grid; grid-template-columns: .35fr 1fr; align-items: end; margin-bottom: 50px; }
.detail-heading .detail-eyebrow { margin: 0 0 8px; }
.detail-heading h2 { margin: 0; font-size: clamp(27px, 3.1vw, 43px); line-height: .94; letter-spacing: -.045em; text-transform: uppercase; }
.artist-info h2 { margin: 0; font-size: clamp(30px, 3.6vw, 50px); line-height: .94; letter-spacing: -.05em; text-transform: uppercase; }
.more-heading h2 { margin: 0; font-size: clamp(23px, 2.4vw, 34px); line-height: .96; letter-spacing: -.04em; text-transform: uppercase; }
.date-list { border-top: 2px solid var(--black); }
.date-row { display: grid; grid-template-columns: 105px minmax(250px, 1.4fr) minmax(165px, .65fr) 210px; align-items: center; min-height: 144px; border-bottom: 1px solid #c7c7c7; background: white; }
.date-box { height: 100%; padding: 18px 20px; display: grid; place-content: center; justify-items: center; border-right: 1px solid var(--gray-2); text-align: center; }
.date-box span, .date-box small { font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; }
.date-box strong { margin: 1px 0; font-size: 42px; line-height: 1; letter-spacing: -.05em; }
.date-box small { color: #777; }
.date-main { padding: 20px clamp(20px, 3vw, 42px); }
.country, .date-price span { display: block; margin-bottom: 7px; color: #777; font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; }
.date-main h3 { margin: 0 0 5px; font-size: clamp(25px, 2.5vw, 38px); line-height: 1; letter-spacing: -.035em; text-transform: uppercase; }
.date-main p { margin: 0; color: #555; font-size: 12px; }
.date-price { padding: 20px; border-left: 1px solid var(--gray-2); }
.date-price strong { display: block; font-size: 21px; }
.date-price small { color: #777; font-size: 9px; }
.ticket-button { align-self: stretch; padding: 0 24px; display: flex; align-items: center; justify-content: space-between; gap: 16px; background: var(--black); color: white; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .09em; }
.ticket-button:hover { background: #333; }
.ticket-button span { font-size: 19px; }
.ticket-unavailable { background: #777; cursor: default; }
.price-note { margin: 17px 0 0; color: #777; font-size: 10px; line-height: 1.5; }
.no-dates { padding: 50px 25px; margin: 0; background: white; font-size: 16px; }

.artist-info { padding: clamp(48px, 6vw, 82px) var(--pad); display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(32px, 5vw, 75px); background: white; }
.artist-copy { align-self: center; max-width: 650px; padding: clamp(20px, 2.5vw, 34px); border: 1px solid var(--gray-2); background: var(--gray-1); }
.artist-copy p { margin: 0; font-size: clamp(14px, 1.05vw, 16px); line-height: 1.6; }

.more-events { padding: clamp(45px, 5vw, 70px) var(--pad); border-top: 1px solid var(--gray-2); background: var(--gray-1); }
.more-heading { margin-bottom: 24px; display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; }
.more-heading > a { padding-bottom: 8px; border-bottom: 1px solid var(--black); font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; }
.more-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(12px, 1.6vw, 22px); }
.more-artwork { position: relative; isolation: isolate; display: block; height: min(25vw, 285px); overflow: hidden; background: #111; }
.more-artwork::before { content: ""; position: absolute; z-index: -1; inset: -12%; background: var(--artwork) center / cover no-repeat; filter: blur(28px) brightness(.42) saturate(.82); transform: scale(1.1); }
.more-grid img { position: relative; z-index: 1; height: 100%; object-fit: contain; object-position: center; }
.more-grid h3 { margin: 9px 0 3px; font-size: clamp(14px, 1.1vw, 17px); line-height: 1.08; text-transform: uppercase; }
.more-grid p { margin: 0; color: #777; font-size: 11px; }

.sticky-ticket { position: fixed; right: 18px; bottom: 18px; z-index: 12; display: none; align-items: center; gap: 15px; padding: 8px 8px 8px 16px; background: white; border: 1px solid var(--gray-2); box-shadow: 0 8px 30px rgba(0,0,0,.18); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.sticky-ticket a { padding: 13px 16px; background: var(--black); color: white; }
.event-error { min-height: 65vh; padding: 120px var(--pad); display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }
.event-error[hidden] { display: none; }
.event-error h1 { max-width: 900px; margin: 0 0 40px; font-size: clamp(50px, 8vw, 110px); line-height: .9; letter-spacing: -.05em; text-transform: uppercase; }

@media (max-width: 980px) {
  .artist-hero { height: clamp(580px, 72vw, 700px); grid-template-columns: .95fr 1.05fr; }
  .date-row { grid-template-columns: 90px minmax(220px, 1fr) 170px; }
  .ticket-button { grid-column: 2 / 4; min-height: 52px; }
  .sticky-ticket { display: flex; }
}

@media (max-width: 720px) {
  .breadcrumbs { min-height: 44px; overflow: hidden; white-space: nowrap; }
  .artist-hero { display: block; height: auto; min-height: 0; }
  .artist-visual { height: clamp(270px, 74vw, 410px); min-height: 0; padding: 10px; display: grid; place-items: center; }
  .artist-visual img { position: absolute; inset: 0; width: 100%; height: 100%; padding: 10px; object-fit: contain; object-position: center; filter: drop-shadow(0 12px 22px rgba(0,0,0,.4)); }
  .artist-intro { height: auto; overflow: visible; padding-top: 18px; padding-bottom: 22px; }
  .artist-intro .detail-eyebrow { margin-bottom: 10px; }
  .artist-lead { margin: 13px 0 12px; font-size: 15px; line-height: 1.45; }
  .artist-lead.is-collapsible:not(.is-expanded) { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
  .artist-lead.is-expanded { display: block; overflow: visible; -webkit-line-clamp: initial; }
  .lead-toggle:not([hidden]) { display: inline-block; }
  .artist-intro h1 { font-size: clamp(38px, 11.5vw, 50px); line-height: .92; }
  .artist-intro h1.is-long-title { font-size: clamp(32px, 9.5vw, 42px); }
  .artist-intro h1.is-very-long-title { font-size: clamp(28px, 8.25vw, 36px); }
  .tour-facts { margin-bottom: 16px; }
  .tour-facts div { padding: 8px 0; grid-template-columns: 108px 1fr; }
  .primary-ticket { padding: 17px 20px; }
  .detail-tabs { min-height: 56px; overflow-x: auto; gap: 28px; }
  .detail-tabs a { flex: 0 0 auto; height: 56px; }
  .dates-section { padding: 42px var(--pad) 58px; }
  .detail-heading { display: block; }
  .detail-heading { margin-bottom: 28px; }
  .detail-heading .detail-eyebrow { margin-bottom: 12px; }
  .date-row { grid-template-columns: 78px 1fr; }
  .date-box { grid-row: 1 / 3; padding: 14px 12px; }
  .date-main { padding: 20px; }
  .date-price { padding: 0 20px 18px; border: 0; }
  .ticket-button { grid-column: 1 / 3; min-height: 55px; }
  .artist-info { grid-template-columns: 1fr; }
  .more-heading { align-items: flex-start; flex-direction: column; }
  .more-grid { grid-template-columns: 1fr 1fr; }
  .more-grid a:last-child { display: none; }
  .artist-info { padding-top: 38px; padding-bottom: 42px; }
  .artist-copy { padding: 19px; }
  .more-events { padding-top: 40px; padding-bottom: 48px; }
  .more-artwork { height: 44vw; }
  .more-grid h3 { font-size: 13px; }
  .sticky-ticket { left: 10px; right: 10px; bottom: max(10px, env(safe-area-inset-bottom)); justify-content: space-between; }
}
