/* Upcoming and recent event rows, isolated from the shared City chrome. */
.city-calendar [hidden] { display: none !important; }
.city-events-intro { padding-block: clamp(3.6rem, 5vw, 6.4rem); }
.city-events-intro .in-title { max-width: 20ch; font-size: min(clamp(3.2rem, 5vw, 6rem), 10svh); }
.city-calendar__head { display: flex; justify-content: space-between; align-items: center; gap: 2rem; margin-bottom: 2.4rem; }
.city-calendar__title { margin: 0; font-family: Poppins, system-ui, sans-serif; font-weight: 800; text-transform: uppercase; font-size: min(clamp(2.6rem, 3vw, 3.8rem), 8svh); line-height: 1.1; letter-spacing: -.02em; }
.city-calendar__head p { margin: .8rem 0 0; font-size: 1.6rem; line-height: 1.5; }
.city-calendar__head > .btn { flex: none; }
.city-calendar__list { list-style: none; margin: 0; padding: 0; }
.city-event { display: grid; grid-template-columns: 6rem 12rem minmax(0, 1fr) auto; align-items: center; gap: 2.4rem; padding-block: 2.4rem; border-top: 1px solid rgba(35,46,45,.23); }
.city-event:last-child { border-bottom: 1px solid rgba(35,46,45,.23); }
.city-event__date { display: flex; flex-direction: column; align-items: center; text-align: center; font-family: Poppins, system-ui, sans-serif; font-weight: 800; line-height: 1.15; }
.city-event__month { color: #9C2721; font-size: 1.2rem; letter-spacing: .08em; text-transform: uppercase; }
.city-event__day { margin-block: .3rem; font-size: 3rem; }
.city-event__weekday, .city-event__year { font-size: 1.1rem; line-height: 1.35; text-transform: uppercase; letter-spacing: .05em; }
.city-event__weekday { opacity: .75; }
.city-event__year { font-weight: 500; }
.city-event__image { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; border-radius: 8px; }
.city-event__body { min-width: 0; }
.city-event__body h3 { margin: 0; font-family: Poppins, system-ui, sans-serif; font-weight: 800; font-size: clamp(1.7rem, 1.5rem + .4vw, 2.1rem); line-height: 1.3; }
.city-event__location { margin: .5rem 0 0; font-size: 1.5rem; line-height: 1.5; }
.city-event__description { margin: 1rem 0 0; max-width: 66ch; font-size: 1.5rem; line-height: 1.55; }
.city-event__ticket { white-space: nowrap; gap: 1rem; }
.city-event__action { justify-self: end; }
.city-event__status { font-size: 1.3rem; font-weight: 600; white-space: nowrap; opacity: .8; }
.city-calendar__empty, .city-calendar__note { font-size: 1.5rem; line-height: 1.6; margin-top: 2rem; }
.city-calendar__empty a, .city-calendar__note a { text-decoration: underline; text-underline-offset: .2em; }
.city-calendar__cities { display: flex; flex-wrap: wrap; gap: .6rem 1.8rem; margin-bottom: 2.4rem; }
.city-calendar__cities a { display: inline-flex; align-items: center; min-height: 44px; font-size: 1.4rem; font-weight: 600; color: #9C2721; text-decoration: underline; text-underline-offset: .3em; }
.city-calendar__recent .city-event { border-color: rgba(228,226,221,.25); }
.city-calendar__recent .city-event__month { color: #E4E2DD; }
.city-calendar--compact { padding-block: clamp(3.6rem, 4vw, 5.6rem); }
.city-calendar--compact .city-event { grid-template-columns: 5.6rem 7.2rem minmax(0, 1fr) auto; gap: 2rem; padding-block: 1.6rem; }
.city-calendar--compact .city-event__body h3 { font-size: 1.8rem; }
.city-calendar--compact .city-event__year { display: none; }
@media (max-width: 899px) {
  .city-event { grid-template-columns: 5rem 9rem minmax(0, 1fr); gap: 1.6rem; }
  .city-event > .city-event__ticket,
  .city-event__action { grid-column: 3; justify-self: start; }
  .city-calendar .city-event__ticket {
    width: auto;
    min-height: 44px;
    padding: .6rem 0;
    background: transparent;
    color: #9C2721;
    border-radius: 0;
    font-size: 1.4rem;
    letter-spacing: 0;
    text-transform: none;
    text-decoration: underline;
    text-underline-offset: .3em;
    justify-content: flex-start;
  }
  .city-event > .city-event__ticket::after { content: "\2192"; }
  .city-calendar__head > .btn {
    background: transparent;
    color: #232E2D;
    padding: .6rem 0;
    white-space: normal;
    font-size: 1.4rem;
    letter-spacing: 0;
    text-transform: none;
    text-decoration: underline;
    text-underline-offset: .3em;
  }
  .city-calendar--compact .city-event { grid-template-columns: 4.4rem 6.4rem minmax(0, 1fr); gap: 1.2rem; }
  .city-calendar__head { align-items: start; flex-direction: column; }
}
@media (max-width: 599px) {
  .city-event, .city-calendar--compact .city-event {
    grid-template-columns: 6.4rem minmax(0, 1fr);
    column-gap: 1.6rem;
    row-gap: .4rem;
    align-items: start;
    padding-block: 2rem;
  }
  .city-event__date { grid-column: 1; grid-row: 1 / span 2; }
  .city-event__day { font-size: 2.2rem; letter-spacing: -0.03em; white-space: nowrap; }
  .city-event__image { display: none; }
  .city-event__body { grid-column: 2; }
  .city-event > .city-event__ticket, .city-event__action { grid-column: 2; }
  .city-event__body h3, .city-calendar--compact .city-event__body h3 { font-size: 1.6rem; }
  .city-event__location, .city-event__description { font-size: 1.4rem; }
  .city-calendar__head { gap: .8rem; margin-bottom: 1.6rem; }
}
