/* Concert listings: defensive layout rules for long titles and narrow screens. */
.oy-concert-row__link { min-width:0; max-width:100%; }
.oy-concert-row__main, .oy-concert-row__meta, .oy-tour-record__text { min-width:0; max-width:100%; }
.oy-concert-row__main strong, .oy-concert-row__main span, .oy-concert-row__main small, .oy-tour-record__text strong, .oy-tour-record__text em { overflow-wrap:anywhere; word-break:normal; }
.oy-concert-row__meta { min-width:0; flex-wrap:wrap; }
.oy-concert-row__image img, .oy-tour-record__thumb img { max-width:100%; height:100%; object-fit:cover; }
.oy-concert-row__arrow { min-width:0; }
.oy-calendar, .oy-calendar-month, .oy-calendar-day, .oy-calendar-event { min-width:0; max-width:100%; }
.oy-calendar-event, .oy-calendar-day a { overflow-wrap:anywhere; word-break:normal; }
.oy-concert-toolbar, .oy-view-switch { max-width:100%; flex-wrap:wrap; }
.oy-concert-tabs { max-width:100%; flex-wrap:nowrap; }
.oy-tour-record__link { min-width:0; max-width:100%; }
.oy-tour-record__text { overflow-wrap:anywhere; }

/* Cross-navigation between upcoming and archived concerts:
   a quiet, immediately discoverable link above each long listing. */
.oy-concert-crossnav {
  display:flex;
  justify-content:flex-end;
  align-items:center;
  margin: 16px 0 0;
}
.oy-concert-crossnav a {
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:5px 0;
  color:#20546b;
  border-bottom:1px solid #b8d5df;
  font-size:.86rem;
  font-weight:600;
  line-height:1.5;
  text-decoration:none;
}
.oy-concert-crossnav a:hover {
  color:#173e51;
  border-bottom-color:#20546b;
}
.oy-concert-crossnav + .oy-concert-toolbar {
  margin-top: 14px;
}
.oy-concert-crossnav + .oy-tour-record {
  margin-top: 16px;
}
@media (max-width:767px) {
  .oy-concert-crossnav { margin-top: 12px; }
  .oy-concert-crossnav a { font-size:.82rem; }
}

/* Keep the four concert filters in one readable row on phones. */
.oy-filter-short { display:none; }
@media (max-width:767px) {
  .oy-concert-toolbar .oy-concert-tabs {
    display:flex;
    width:100%;
    max-width:100%;
    flex-wrap:nowrap;
    gap:5px;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }
  .oy-concert-tabs button {
    flex:0 0 auto;
    min-height:40px;
    padding:8px 7px;
    font-size:13px;
    line-height:1.3;
    white-space:nowrap;
  }
  .oy-filter-long { display:none; }
  .oy-filter-short { display:inline; }
}
@media (max-width:480px) {
  .oy-concert-row__link { min-width:0; }
  .oy-concert-row time { white-space:normal; overflow-wrap:anywhere; }
  .oy-concert-row__meta { justify-content:flex-start; margin-top:4px; }
  .oy-concert-row__main strong { overflow-wrap:anywhere; }
  .oy-role-badge, .oy-ticket-status { max-width:100%; white-space:normal; overflow-wrap:anywhere; }
}
